我的PHP代碼中有關於動態數組的奇怪錯誤。PHP - 數組致命錯誤
輸出的錯誤是:
Fatal error: Cannot use string offset as an array ... on line 89
這是我的代碼的一部分,它是一個foreach循環,這是通過設置在一個數據庫中循環內:
foreach($query->fetchAll() as $row)
{
if($site!=CURRENT_SITE_TEMPLATE)
{
$property = 'foreignSettings';
$propertyType = 'foreignSettingsTypes';
} else {
$property = 'settings';
$propertyType = 'settingTypes';
}
$this->$property[$row['variable_section']][$row['variable_name']] = $row['variable_value'];
settype($this->$property[$row['variable_section']][$row['variable_name']],$row['variable_type']);
$this->$propertyType[$row['variable_section']][$row['variable_name']] = $row['variable_type'];
}
對於起見的示例代碼,$site
是'admin',CURRENT_SITE_TEMPLATE
是'admin'。 此外,$foreignSettings, $foreignSettingsTypes, $settings, and $settingTypes
都被定義爲在類範圍
該錯誤是對線89的陣列,其是:
$this->$property[$row['variable_section']][$row['variable_name']] = $row['variable_value'];
我原先認爲這是因爲$屬性變量accesing陣列的,但是,這看起來像PHP文檔中的有效法定代碼(http://php.net/manual/en/language.variables.variable.php in example #1
)
對此錯誤的任何幫助將不勝感激。
感謝
設置或foreignSettings屬性是一個數組嗎? var_dump($ this - > $ property)並檢查裏面有什麼。 – cernunnos 2013-03-21 11:50:57
我不知道它應該如何,但嘗試以下方法之一,看看是否可以:'$ this - > {$ property [$ row ['variable_section']] [$ row ['variable_name']] }'或$ $ this - > {$ property} [$ row ['variable_section']] [$ row ['variable_name']]'(第二個應該沒問題) – Voitcus 2013-03-21 12:00:28
是啊,第二個應該這麼做 – ITroubs 2013-03-21 12:03:27