我得到一个奇怪的PHP错误后更新我的PHP版本到5.4.0-3。
我有这样一个数组:
Array
(
[host] => 127.0.0.1
[port] => 11211
)
当我试图像这样访问它时,我会得到奇怪的警告
print $memcachedConfig['host'];
print $memcachedConfig['port'];
Warning: Illegal string offset 'host' in ....
Warning: Illegal string offset 'port' in ...
我真的不想只是编辑我的php.ini并重新设置错误级别。
错误非法字符串偏移'whatever'在…通常意味着:你试图使用一个字符串作为一个完整的数组。
这实际上是可能的,因为字符串在php中可以被视为单个字符的数组。所以你认为$var是一个带键的数组,但它只是一个带标准数字键的字符串,例如:
$fruit_counts = array('apples'=>2, 'oranges'=>5, 'pears'=>0);
echo $fruit_counts['oranges']; // echoes 5
$fruit_counts = "an unexpected string assignment";
echo $fruit_counts['oranges']; // causes illegal string offset error
你可以在这里看到它的作用:
http://ideone.com/fMhmkR
对于那些遇到这个问题试图将错误的模糊性转化为解决它的方法的人,就像我一样。