vacio recorrer multidimensional functions elementos ejemplos declarar asociativo array agregar php arrays braces

recorrer - php array functions



Llaves de PHP en notaciĆ³n de matriz (3)

Se menciona en el manual, pero es oscuro:

http://www.php.net/manual/en/language.types.string.php#language.types.string.substr

En pocas palabras, las llaves solo tienen acceso a un solo carácter (intente agregar una cadena completa y verá que solo devuelve el primer carácter). También está en desuso, así que evitaría su uso.

Acabo de encontrar un código php muy extraño:

$oink{''pig''} = 1; var_dump($oink); $oink{''pig''} = ''123123''; echo $oink{''pig''}; /* => 123123 */ echo $oink[''pig'']; /* => 123123 */

Funciona como una matriz, pero no se menciona en ninguna parte en el manual. ¿Que es esto?


Se menciona en el manual. {} es solo una sintaxis alternativa a [] § :

Tanto los corchetes como las llaves pueden usarse indistintamente para acceder a los elementos de la matriz (por ejemplo, $array[42] y $array{42} harán lo mismo en el ejemplo anterior).

Lo mismo pasa con las cuerdas § :

Se puede acceder y modificar los caracteres dentro de las cadenas especificando el desplazamiento basado en cero del carácter deseado después de la cadena usando paréntesis cuadrados, como en $str[42] . Piense en una cadena como una matriz de caracteres para este propósito. [...]

Nota: También se puede acceder a las cadenas usando llaves, como en $str{42} , para el mismo propósito .


Según este comentario sobre la documentación, es solo otra notación, probablemente diseñada para parecerse a la sintaxis de Perl: http://www.php.net/manual/de/language.types.array.php#99015

Actualización: cuando esta respuesta se publicó originalmente, el manual de PHP no tenía información oficial sobre esta notación. Sin embargo, para 2014, el comentario al que se hizo referencia anteriormente se había eliminado y, como share , la notación se había share oficialmente en el manual.