動的配列に関する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
)の有効な有効なコードのように見えます。
このエラーに関するヘルプをいただければ幸いです。
ありがとう