Maison > développement back-end > tutoriel php > 求助关于PHP数组的问题

求助关于PHP数组的问题

WBOY
Libérer: 2016-06-06 20:50:47
original
988 Les gens l'ont consulté

$a[3] = 5;
$a["3"] = 6;
$a["3.14"] = 7;
$a[3.14] = 8;

echo $a[3], $a["3"], $a["3.14"], $a[3.14];
Copier après la connexion
Copier après la connexion

输出为什么是 8878?

回复内容:

$a[3] = 5;
$a["3"] = 6;
$a["3.14"] = 7;
$a[3.14] = 8;

echo $a[3], $a["3"], $a["3.14"], $a[3.14];
Copier après la connexion
Copier après la connexion

输出为什么是 8878?

http://php.net/manual/en/language.typ...

Additionally the following key casts will occur:
.....
Floats are also cast to integers, which means that the fractional part will be truncated. E.g. the key 8.7 will actually be stored under 8.
-----

in you case, the 3.14 out of $a[3.14] will be cast to 3

--------------

Strings containing valid integers will be cast to the integer type. E.g. the key "8" will actually be stored under 8.

$a[3] = 5;
$a["3"] = 6;

both are same thing and will be cast to $a[3].

----

On the other hand "08" will not be cast, as it isn't a valid decimal integer.

$a["3.14"] = 7; //"3.14" is a string and it won't be cast.

---------------
Summary:
$a[3] = 5;
$a["3"] = 6; // $a[3] is 6 now.
$a["3.14"] = 7; //"3.14" is a string, no cast then.
$a[3.14] = 8; // 3.14 will be cast to 3 which results in $a[3] = 8

echo $a[3], $a["3"], $a["3.14"], $a[3.14];
is actually
echo $a[3],$a[3],$a["3.14"],$a[3]

想起了学生时代,呵呵. 经常看这种陷阱题,其实现实中从来没遇到过.......
都用引号吧.

Étiquettes associées:
php
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal