$a = 'a';
echo isset($a['b']);
此代码返回 1。为什么?
字符串字符可以通过其偏移量来引用,使用类似于 $a[0] 的语法作为第一个字符,例如
$string = 'Hello';
echo $string[1]; // echoes 'e'
所以 PHP 识别 $a 是一个字符串;将“b”转换为数字(转换为 0),并尝试在 $a[0](第一个字符)上测试 isseta
尽管如果启用了错误,它也应该抛出非法偏移“b”警告
EDIT
$a = 'a';
echo isset($a['b']), PHP_EOL;
echo $a['b'];
PHP 5.3
1
a
PHP 5.4
Warning: Illegal string offset 'b' in /Projects/test/a10.php on line 6
a
PHP 5.5
PHP Warning: Illegal string offset 'b' in /Projects/test/a10.php on line 6
Warning: Illegal string offset 'b' in /Projects/test/a10.php on line 6
a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)