當在PHP 5.4上測試「面向未來的」代碼時,我收到了一個我不明白的警告。我的數組索引是「非法字符串偏移量」?
function __clone() {
$this->changed = TRUE;
foreach ($this->conditions as $key => $condition) {
if (
$condition['field']
instanceOf QueryConditionInterface) {
$this->conditions[$key]['field'] = clone($condition['field']);
}
}
}
我爆發了$condition['field']
到它自己的行,以減少代碼量的集中地。關於特定線路,PHP有這樣一段話
警告:非法串在
DatabaseCondition->__clone()
偏移'field'
我只是不明白「場」怎麼樣,是一個非法的字符串偏移量。我猜測我只是錯過了一些明顯的東西,但如果社區找不到問題,我會提交一份錯誤報告。
我將此警告解釋爲「」在任何情況下,「字段」都不是有效的密鑰「。如果我曾試圖將數組作爲關鍵字,那麼這個錯誤是有道理的。
代碼審查是爲了改進工作代碼。關於警告含義的具體問題在那裏是無關緊要的。 – 2012-02-17 21:13:09
你可以'var_dump('$ this-> conditions');'? – 2012-02-17 21:29:34
在PHP 5.4下安裝Drupal時也會出現這個錯誤http://drupal.org/node/1483986我相信PHP 5.4中的某些內容已經損壞,或者'field'現在是一個保留的PHP關鍵字,不能用於數組,但我傾向於PHP錯誤。據報道,在PHP上的以前版本中不會發生此錯誤。 – Brain2000 2012-03-21 15:14:37