$a = 'a';
echo isset($a['b']);
Run Code Online (Sandbox Code Playgroud)
此代码返回1.为什么?
字符串字符可以通过它们的偏移量使用类似$ a [0]的语法来引用第一个字符,例如
$string = 'Hello';
echo $string[1]; // echoes 'e'
Run Code Online (Sandbox Code Playgroud)
所以PHP认识到$ a是一个字符串; 将'b'转换为数字(转换为0),并尝试在$ a [0]上测试isset,这是第一个字符a
如果您启用了错误,它也应该抛出非法的偏移'b'警告
编辑
$a = 'a';
echo isset($a['b']), PHP_EOL;
echo $a['b'];
Run Code Online (Sandbox Code Playgroud)
PHP 5.3
1
a
Run Code Online (Sandbox Code Playgroud)
PHP 5.4
Warning: Illegal string offset 'b' in /Projects/test/a10.php on line 6
a
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |