De quelle façon mon index de tableau un "Illegal string offset'?

Lors de "l'épreuve de l'avenir" de code par les tests sur PHP 5.4, je reçois un avertissement que je ne comprends pas.

function __clone() {
  $this->changed = TRUE;
  foreach ($this->conditions as $key => $condition) {
    if (
    $condition['field']
    instanceOf QueryConditionInterface) {
      $this->conditions[$key]['field'] = clone($condition['field']);
    }
  }
}

J'ai éclaté $condition['field'] dans sa propre ligne afin de réduire la quantité de code à se concentrer sur. Sur la ligne, PHP a ceci à dire

Warning: Illegal string offset 'field' dans DatabaseCondition->__clone()

Et je ne peux pas voir comment le 'champ', est un illegal string offset. Je suppose que je suis juste en manque de quelque chose d'évident, mais si la communauté ne peut pas trouver de problème, je vais faire un rapport de bogue.

- Je interpréter le message d'avertissement comme "n'est en aucun cas "terrain" d'une clé valide". Cette erreur aurait fait sens que si j'avais essayé de nous, par exemple un tableau comme une clé.

La Revue de Code est pour l'amélioration de code de travail. Questions spécifiques au sujet de la signification des avertissements sont hors-sujet là.
Pouvez-vous var_dump('$this->conditions');?
Cette erreur se produit également lors de l'installation de Drupal sous PHP 5.4 drupal.org/node/1483986 je crois que quelque chose en PHP 5.4 est brisé, ou peut-être "champ" est désormais réservé PHP mot-clé qui ne peut pas être utilisé pour les tableaux, mais je penche vers un bogue de PHP. Il est rapporté que cette erreur ne se produit pas dans les versions antérieures à PHP.
Si vous lisez mon commentaire sous la accepté de répondre, vous verrez que ce n'est pas un problème PHP. Le problème a été résolu comme de Drupal 7.13 drupal.org/node/1414412

OriginalL'auteur Letharion | 2012-02-17