PHP可能会掉入的坑一
- 2018-03-20 21:00:00
- ohzer 原创
- 4030
今天被人问:
$var = 'test'; if (isset($var['somekey'])) { echo 'reach here!!!'; }
会不会输出'reach here!!!'? ---当然不会啊。我想也没想就答。
果然,我掉坑里了!会输出的!如果你没掉坑里,那么恭喜你,你也不用往下看了。
现在,让我们来分析一下。既然 isset 了,那么值到底是什么呢?我们把它打印出来:
var_dump($var['somekey']); //=>output: string(1) "t"
因为变量$var是一个字符串,学过C语言的话就知道它是char类型的数组,所以我们可以用 $var[0] $var[1] $var[$i]...取到 $var 的第 $i+1 个字符。那么刚才的 'somekey' 为什么取到的是第一个字符呢?这是因为php在这里做了隐式的类型转换,将这里的字符串转换成int型。你试过intval('somekey')函数的话就知道得到的就是0,所以 $var['somekey']最终就是 $var[0]了。最后,得到了 't'。
以上就是PHP可能会掉入的坑一的详细内容,更多请关注php中文网其它相关文章!
发表评论
最新文章
联系我们
联系人: | 杨先生 |
---|---|
电话: | 0871-65652226 |
Email: | ohzer@sian.com |
QQ: | 561631200 |
微信: | ohzer_cn |
微博: | ohzer |
地址: | 云南省昆明市官渡区晋馨园小区B幢1单元602号 |
- 免费使用手册
- 5X8小时免费技术服务
- FAQ使用问题
- 解决方案