L'utilisation d'un tableau PHP implique généralement d'attribuer des valeurs à des clés qui sont soit des chaînes, soit des entiers. Cependant, la question se pose : pouvons-nous utiliser des chaînes numériques comme clés de tableau sans que PHP les convertisse en entiers ? Prenons l'exemple suivant :
$blah = array('123' => 1); var_dump($blah);
Ici, vous pouvez vous attendre à ce que le résultat soit :
array(1) { ["123"]=> int(1) }
Avec la clé « 123 » représentée sous forme de chaîne. Cependant, le résultat réel est :
array(1) { [123]=> int(1) }
Cela démontre que la chaîne numérique « 123 » a été convertie en une clé entière 123.
Pourquoi PHP n'autorise-t-il pas les valeurs numériques Clés de chaîne ?
Selon le manuel PHP :
Une clé peut être soit un entier, soit une chaîne. Si une clé est la représentation standard d'un entier, elle sera interprétée comme telle (c'est-à-dire que "8" sera interprété comme 8, tandis que "08" sera interprété comme "08").
Cela signifie que PHP interprète toute chaîne numérique comme un entier, même si vous la citez sous forme de chaîne.
Addendum : Comparaison avec un objet JavaScript Clés
Ce comportement en PHP est similaire mais pas identique aux clés d'objet JavaScript. En JavaScript, vous pouvez utiliser des chaînes numériques comme clés d'objet, et elles conserveront leur forme de chaîne :
foo = { '10' : 'bar' }; foo['10']; // "bar" foo[10]; // "bar" foo[012]; // "bar" foo['012']; // undefined!
Dans cet exemple, « 10 » est utilisé comme clé de chaîne, tandis que 10 et 012 sont tous deux interprétés. sous forme d'entiers. Cependant, « 012 » en tant que chaîne entre guillemets est traité comme indéfini, contrairement à PHP où il serait interprété comme la chaîne « 012 ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!