Si consideri il codice:Che cosa significa questa sintassi PHP?
$a = "foobar";
echo $a{3}; // prints b
So $a[3]
è 'b'
ma come mai utilizzando {}
al posto del []
produec lo stesso risultato?
Si consideri il codice:Che cosa significa questa sintassi PHP?
$a = "foobar";
echo $a{3}; // prints b
So $a[3]
è 'b'
ma come mai utilizzando {}
al posto del []
produec lo stesso risultato?
{} e [] sono gli stessi. è la tua scelta su cosa usare. [] è più comune però.
{} è deprecato e non dovrebbe essere utilizzato –
È lo stesso, ma la sintassi {}
è obsoleta a partire da PHP 5.3.
Si può leggere su here in official documentation parentesi:
String s può accedere anche utilizzando parentesi, come in $ str {42}, per lo stesso scopo . Tuttavia, questa sintassi è obsoleta a partire da PHP 5.3.0. Utilizza invece le parentesi quadre , ad esempio $ str [42].
EDIT Questo thread può interessare: "dropping curly braces"
E 'solo una sintassi alternativa; le due forme compilare esattamente lo stesso bytecode:
<?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
proposito, gli array sono accessibili anche con '{}' invece di '[]'. C'era una volta, '[]' era raccomandato per gli array e '{}' per la stringa. Ora, '[]' è la soluzione consigliata. – Artefacto