• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

求助关于PHP数组的问题

php 搞代码 4年前 (2022-01-25) 23次浏览 已收录 0个评论
文章目录[隐藏]
$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];

输出为什么是 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];

输出为什么是 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.

本文来源gaodai#ma#com搞@@代~&码*网/搞gaodaima代码

$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]

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:求助关于PHP数组的问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址