在我的劇本之一,我嘗試做以下無法使用[]讀取
$data[] = self::get($row['sr_id']); // <-- line 55
然而,PHP不允許我這樣做,給我這個錯誤
Fatal error: Cannot use [] for reading in /file.php on line 55
self::get
函數返回一個布爾或對象。
編輯: get函數創建一個新的對象,它再次從mysql數據庫加載數據。
在我的劇本之一,我嘗試做以下無法使用[]讀取
$data[] = self::get($row['sr_id']); // <-- line 55
然而,PHP不允許我這樣做,給我這個錯誤
Fatal error: Cannot use [] for reading in /file.php on line 55
self::get
函數返回一個布爾或對象。
編輯: get函數創建一個新的對象,它再次從mysql數據庫加載數據。
老版本的PHP在表達式中接受$var[]
,允許不管語法的讀出$var
內容。 PHP 5.1使得這是非法的。但有時候,錯誤是在默認情況之外觸發的。
所以我的猜測(再次顯示更多代碼)是前面的行包含未完成的表達式,$data[]
加入。
在對象屬性的情況下,你可以包裝你的$ data var到{ }
,但這似乎不是你的情況的問題。 (否則54行中有東西,你沒有顯示。)右側不能合理觸發錯誤。即使是數組訪問[]
整數或對象也不會觸發該致命錯誤。
所以如果沒有什麼幫助,只需使用array_push()
。解決PHP。
在我的案件的解決方案,這是:
$this->$ExtraTag[] = $fullscript;
$this->{$ExtraTag}[] = $fullscript;
或
$this->ExtraTag[] = $fullscript;
甜。 $ this - > {$ ExtraTag} [] = $ fullscript爲我工作! – FateNuller 2015-06-22 16:01:21
我並不感到驚訝,第一個「壞」行不起作用,最後一行是:「壞」行實際上是無效的語法,最後一行是預期的語法。中間的例子是一個醜陋的解決方法,把第一個例子變成第三個例子。我建議不要這麼做:它不那麼清晰,簡潔,性能較差(因爲PHP沒有預編譯器來優化它到第三個例子)。 – Byson 2017-07-21 13:06:18
我得到的錯誤是:
Fatal error: Cannot use [] for reading in /pathtosite/drupal/sites/all/themes/zenui/templates/page.tpl.php on line 33
有時問題是,當你有這樣一行:
$page['sidebar_first'][]
這可能發生,如果你正在複製一個變量名並忘記註釋掉該行。
有兩個問題:
1。缺少分號
2. $變量[]必須設置一個變量
修復這兩個問題我的代碼後讀:
$page['sidebar_first'][] = $value;
不要忘了註釋掉行,你不用來幫助調試進程
希望這可以幫助像我這樣的程序員!
我與我的劇本同樣的問題,下面的行拋出了同樣的錯誤:
$array[]=$value
我只需
$array[count($array)-1]=$value
取代它,它完美地工作。
另一個可能的問題可能是意外雙重==
。 例如,不小心在做$myArray[] == $myNewValue;
會導致這個錯誤(因爲你正試圖用==
讀取一個值,而不是告訴PHP分配一個新的數組索引)。
檢查$行包含 – Eiko 2010-09-29 09:23:53
'print_r($ row)' – 2010-09-29 09:25:18
你可以顯示周邊代碼/ get方法嗎? – halfdan 2010-09-29 09:30:37