將我的 php 版本更新到 5.4.0-3 后,我收到一個(gè)奇怪的 PHP 錯(cuò)誤。
我有這個(gè)數(shù)組:
Array ( [host] => 127.0.0.1 [port] => 11211 )
當(dāng)我嘗試像這樣訪問(wèn)它時(shí),我收到奇怪的警告
print $memcachedConfig['host']; print $memcachedConfig['port']; Warning: Illegal string offset 'host' in .... Warning: Illegal string offset 'port' in ...
我真的不想只編輯我的 php.ini 并重新設(shè)置錯(cuò)誤級(jí)別。
錯(cuò)誤Illegal string offset 'whatever' in...
通常意味著:您正在嘗試將字符串用作完整數(shù)組。
這實(shí)際上是可能的,因?yàn)樵?php 中字符串可以被視為單個(gè)字符的數(shù)組。所以你認(rèn)為 $var 是一個(gè)帶有鍵的數(shù)組,但它只是一個(gè)帶有標(biāo)準(zhǔn)數(shù)字鍵的字符串,例如:
$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
您可以在此處查看實(shí)際效果: http://ideone.com/fMhmkR
對(duì)于那些提出這個(gè)問(wèn)題并試圖將錯(cuò)誤的模糊性轉(zhuǎn)化為解決問(wèn)題的人,就像我一樣。
請(qǐng)嘗試這種方式......我已經(jīng)測(cè)試過(guò)這段代碼......它有效......
$memcachedConfig = array("host" => "127.0.0.1","port" => "11211"); print_r($memcachedConfig['host']);