当在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