Gdy "przyszłościowy" kod testując go w PHP 5.4, otrzymuję ostrzeżenie, którego nie rozumiem.W jaki sposób indeks mojej tablicy jest "Nielegalnym przesunięciem łańcucha"?
function __clone() {
$this->changed = TRUE;
foreach ($this->conditions as $key => $condition) {
if (
$condition['field']
instanceOf QueryConditionInterface) {
$this->conditions[$key]['field'] = clone($condition['field']);
}
}
}
wybuchła $condition['field']
w swoim wierszu, aby zmniejszyć ilość kodu, aby skupić. O tej konkretnej linii, PHP ma do powiedzenia
Warning: Illegal ciąg przesunięcie
'field'
wDatabaseCondition->__clone()
A ja po prostu nie mogę zobaczyć, jak 'pole', jest nielegalne ciąg offset. Zgaduję, że brakuje mi czegoś oczywistego, ale jeśli społeczność nie może znaleźć problemu, zagram raport o błędzie.
Interpretuję ostrzeżenie jako "Pod żadnym pozorem" pole "nie jest prawidłowym kluczem". Ten błąd miałby sens, gdybym próbował do nas na przykład tablica jako klucz.
Przegląd kodu służy do poprawienia działającego kodu. Konkretne pytania na temat znaczenia ostrzeżeń są tam nie na temat. –
Czy możesz 'var_dump (" $ this-> conditions ");'? –
Ten błąd występuje również podczas instalowania Drupala w PHP 5.4 http://drupal.org/node/1483986 Wierzę, że coś w PHP 5.4 jest zepsute, a może "pole" jest teraz zarezerwowanym słowem kluczowym PHP, którego nie można użyć do tablic, ale Skłaniam się do błędu PHP. Podano, że ten błąd nie występuje w poprzednich wersjach PHP. – Brain2000