Maison > développement back-end > tutoriel php > Les tableaux PHP peuvent-ils utiliser des chaînes numériques comme clés sans conversion entière ?

Les tableaux PHP peuvent-ils utiliser des chaînes numériques comme clés sans conversion entière ?

Barbara Streisand
Libérer: 2024-12-02 09:55:12
original
904 Les gens l'ont consulté

Can PHP Arrays Use Numeric Strings as Keys Without Integer Conversion?

Attribuer des clés entières de chaîne dans des tableaux PHP

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);
Copier après la connexion

Ici, vous pouvez vous attendre à ce que le résultat soit :

array(1) {
  ["123"]=>
  int(1)
}
Copier après la connexion

Avec la clé « 123 » représentée sous forme de chaîne. Cependant, le résultat réel est :

array(1) {
  [123]=>
  int(1)
}
Copier après la connexion

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!
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal