将我的 php 版本更新到 5.4.0-3 后,我收到一个奇怪的 PHP 错误。我有这个数组:Array( [host] => 127.0.0.1 [port] => 11211) 当我尝试像这样访问它时,我收到奇怪的
将我的 php 版本更新到 5.4.0-3 后,出现一个奇怪的 PHP 错误。
我有这个数组:
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