我得到一个奇怪的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并重新设置错误级别。
从PHP 5.4开始,我们需要传递与函数预期相同的数据类型值。例如:
function testimonial($id); // This function expects $id as an integer
当调用这个函数时,如果一个字符串值是这样提供的:
$id = $array['id']; // $id is of string type
testimonial($id); // illegal offset warning
这将生成一个非法偏移警告,因为数据类型不匹配。为了解决这个问题,你可以使用settype:
$id = settype($array['id'],"integer"); // $id now contains an integer instead of a string
testimonial($id); // now running smoothly