首页  >  问答  >  正文

PHP警告:非法的字符串偏移量

将我的 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 并重新设置错误级别。

P粉548512637P粉548512637349 天前578

全部回复(2)我来回复

  • P粉420868294

    P粉4208682942023-10-10 12:23:40

    错误Illegal string offset 'whatever' in...通常意味着:您正在尝试将字符串用作完整数组。

    这实际上是可能的,因为在 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

    对于那些提出这个问题并试图将错误的模糊性转化为解决问题的人,就像我一样。

    回复
    0
  • P粉267885948

    P粉2678859482023-10-10 10:42:00

    请尝试这种方式......我已经测试过这段代码......它有效......

    $memcachedConfig = array("host" => "127.0.0.1","port" => "11211");
    print_r($memcachedConfig['host']);

    回复
    0
  • 取消回复