$tally['zero']['status']='hello';
echo $tally['zero']['status'];
//prints hello, this is expected
在这个例子中,为什么只打印第一个字母?
$tally = array( "zero" => '0');
$tally['zero']['status']='hello';
echo $tally['zero']['status'];
// prints h, I was expecting hello
在这个例子中,为什么会抛出错误?
$tally['zero'] = 0;
$tally['zero']['status']='hello';
echo $tally['zero']['status'];
//prints Warning: Cannot use a scalar value as an array
答案 0 :(得分:3)
在这个例子中,为什么只打印第一个字母?
$tally = array( "zero" => '0'); $tally['zero']['status'] = 'hello'; echo $tally['zero']['status']; // h
在PHP中,字符串可以像数组一样编制索引,也可以在适当的位置进行修改。因此,索引字符串时'status'
变为0
,hello
的第一个字符将分配给$tally['zero']
的第一个字母。例如,这个:
$tally = array( "zero" => '01');
$tally['zero']['status'] = 'hello';
echo $tally['zero'];
会打印“h1”。
在这个例子中,为什么会抛出错误?
$tally['zero'] = 0; $tally['zero']['status'] = 'hello'; echo $tally['zero']['status'];
如错误所述,0
不是数组。你不能索引它,因此警告。
答案 1 :(得分:0)
注意使用“和”。使用时“内容可以解释为变量值。
0 != '0' number/string
我认为这里隐藏着所有的神秘感。