xem xét mã:Cú pháp PHP này có ý nghĩa gì?
$a = "foobar";
echo $a{3}; // prints b
Tôi biết $a[3]
là 'b'
nhưng làm thế nào mà sử dụng {}
ở vị trí của []
produec kết quả tương tự?
xem xét mã:Cú pháp PHP này có ý nghĩa gì?
$a = "foobar";
echo $a{3}; // prints b
Tôi biết $a[3]
là 'b'
nhưng làm thế nào mà sử dụng {}
ở vị trí của []
produec kết quả tương tự?
{} và [] giống nhau. nó là sự lựa chọn của bạn những gì để sử dụng. [] là phổ biến hơn mặc dù.
{} không được dùng nữa và không được sử dụng –
Giống nhau, nhưng cú pháp {}
không còn được dùng nữa kể từ PHP 5.3.
Bạn có thể đọc here in official documentation về niềng răng:
String s cũng có thể được truy cập bằng niềng răng, như trong $ str {42}, với cùng mục đích . Tuy nhiên, cú pháp này là không được chấp nhận như của PHP 5.3.0. Thay vào đó, hãy sử dụng dấu ngoặc vuông , chẳng hạn như $ str [42].
EDIT chủ đề này có thể bạn quan tâm: "dropping curly braces"
Nó chỉ là một cú pháp thay thế; hai hình thức biên dịch chính xác các bytecode cùng:
<?php
$str = "aaab";
echo $str{3};
echo $str[3];
number of ops: 9 compiled vars: !0 = $str line # * op fetch ext return operands --------------------------------------------------------------------------------- 2 0 > EXT_STMT 1 ASSIGN !0, 'aaab' 3 2 EXT_STMT 3 FETCH_DIM_R $1 !0, 3 4 ECHO $1 4 5 EXT_STMT 6 FETCH_DIM_R $2 !0, 3 7 ECHO $2 8 > RETURN 1
FYI, mảng cũng có thể được truy cập với '{}' thay vì '[]'. Ngày xửa ngày xưa, '[]' được đề xuất cho mảng và '{}' cho chuỗi. Bây giờ, '[]' là cách được khuyên dùng. – Artefacto