我的 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'];
我最初认为这是因为 $property 变量访问了数组,但是,这看起来像是 PHP 文档中的有效合法代码(http://php.net/manual/en/language.variables.variable.php in example #1
)
对此错误的任何帮助将不胜感激。
谢谢