$str = "It's \"good\"";
echo strlen(addslashes($str));
?>
Xem đoạn mã lệnh sau đây. Sau khi thực hiện đoạn mã trên kết quả hiển thị sẽ là gì?
Trả lời:
Đáp án đúng: C
Đoạn code PHP sử dụng hàm `addslashes()` để thêm dấu gạch chéo ngược (`\`) trước các ký tự cần thiết (như dấu nháy đơn, nháy kép, gạch chéo ngược, và NULL). Trong chuỗi `$str`, có một dấu nháy kép đã được escape bằng gạch chéo ngược (`\"`).
Hàm `addslashes()` sẽ thêm một gạch chéo ngược trước mỗi dấu nháy kép và gạch chéo ngược hiện có. Do đó:
- Ký tự `'` sẽ được chuyển thành `\'`.
- Ký tự `\"` sẽ được chuyển thành `\\\"` (thêm gạch chéo trước cả dấu gạch chéo và dấu nháy kép).
Chuỗi gốc là `It's \"good\"`, có độ dài 13. Sau khi áp dụng `addslashes()`:
- `It's` -> `It\'s` (thêm 1 gạch chéo)
- `\"` -> `\\\"` (thêm 2 gạch chéo)
- `good` -> `good`
- `\"` -> `\\\"` (thêm 2 gạch chéo)
Vậy chuỗi mới sẽ là `It\'s \\\"good\\\"`, có độ dài là 13 + 1 + 2 + 2 = 20.
Hàm `strlen()` sẽ trả về độ dài của chuỗi đã được xử lý, tức là 20.