PHPCMS 錯誤日誌 Only variables should be passed by ...

有幾個網站是PHPCMS V9作的,但這兩天發現一個問題,PHPCMS 的錯誤日誌超過了20M ,後臺報警,而後我看了下錯誤日誌,其中兩萬多行都是一個錯誤,錯誤信息以下:php


1 <?php exit;?>11-03 10:24:46 | 2048 | Only variables should be passed by reference | caches/caches_model/caches_data/content_output.class.php | 79

而後查找 根源 caches/caches_model/caches_data/content_output.class.php 的第79行 數組

 

1 extract(string2array($this->fields[$field]['setting']));

PHP extract() 函數從數組中把變量導入到當前的符號表中。
對於數組中的每一個元素,鍵名用於變量名,鍵值用於變量值。 緩存


因而我懷疑extract()的參數不是數組 形成的。 函數

因爲報錯的這個位置試過緩存文件,找到源文件的位置爲 網站

網站根目錄/phpcms/modules/content/fields/box/output.inc.php
this

修改文件裏面的 spa


1 extract(string2array($this->fields[$field]['setting']));
爲:
1 $setting = string2array($this->fields[$field]['setting']); is_array($setting) && extract($setting);


這樣,先判斷下extract()的參數是否是一個數組,若是是數組的話,才執行extract(),這樣就避免錯誤, 日誌

而後在PHPCMS 更新緩存,這樣後面就不會報錯了 code

相關文章
相關標籤/搜索