次のコードは、PHP 5.3 のコンピューターでは機能しますが、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
どちらの場合も「フィールド」オフセットはありませんが、PHP 5.3 ではライブラリは問題なく動作し続けますが、PHP 5.4 では次の警告メッセージが表示されます。
Warning: Illegal string offset 'field' in DatabaseCondition->__clone()
その直後、ライブラリ (Drupal6 から) が機能しなくなります。
これを修正する方法はありますか?
isset($condition['field'])
フレームワークのコア ライブラリであっても使用する必要がありますか?