In welcher Weise ist mein array-index ein 'Illegal string offset'?

Beim "future-proofing" - code testen, PHP 5.4, bekomme ich eine Warnung die ich nicht verstehe.

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

Brach ich $condition['field'] in eine eigene Zeile zu reduzieren die Menge an code zu konzentrieren. Etwa, dass bestimmte Zeile, PHP hat das zu sagen

Warnung: Illegal string offset 'field' im DatabaseCondition->__clone()

Und ich kann einfach nicht sehen, wie 'Feld', ist ein illegal string offset. Ich vermute, dass ich bin nur etwas fehlt, klar, aber wenn die community nicht finden können, ein problem, ich werde einen bug-report.

Interpretiere ich die Warnung als "Unter keinen Umständen ist "Feld" ein Gültiger Schlüssel". Dieser Fehler hätte Sinn gemacht, wenn ich versucht hatte, uns zum Beispiel ein array als Schlüssel.

  • Code-Review für die Verbesserung der Arbeits-code. Bestimmte Fragen über die Bedeutung von Warnhinweisen off-topic gibt.
  • Können Sie var_dump('$this->conditions');?
  • Dieser Fehler tritt auch bei der Installation von Drupal unter PHP 5.4 drupal.org/node/1483986 ich glaube, etwas in PHP 5.4 ist gebrochen, oder vielleicht 'Feld' ist jetzt ein reserviertes PHP-Schlüsselwort nicht verwendet werden kann für arrays, aber ich bin Neigung zu einem PHP-Fehler. Es wird berichtet, dass dieser Fehler tritt nicht in früheren Versionen auf PHP.
  • Wenn Sie Lesen, mein Kommentar unter die akzeptierte Antwort, die Sie werden feststellen, dass dies nicht ein PHP-problem. Das problem wurde gelöst, wie von Drupal 7.13 drupal.org/node/1414412
InformationsquelleAutor Letharion | 2012-02-17
Schreibe einen Kommentar