Quando codice "a prova di futuro" testandolo su PHP 5.4, ricevo un avviso che non capisco.In che modo il mio array indice un 'offset stringa illegale'?
function __clone() {
$this->changed = TRUE;
foreach ($this->conditions as $key => $condition) {
if (
$condition['field']
instanceOf QueryConditionInterface) {
$this->conditions[$key]['field'] = clone($condition['field']);
}
}
}
scoppio della $condition['field']
in una riga di ridurre la quantità di codice a concentrarsi. A proposito di quella linea specifica, PHP ha questo da dire
Attenzione: compensato stringa illegale
'field'
inDatabaseCondition->__clone()
E non riesco proprio a vedere come 'campo', è un offset stringa di illegale. Immagino che mi manchi qualcosa di ovvio, ma se la community non riesce a trovare un problema, presenterò una segnalazione di errore.
Interpreto l'avviso come "In nessun caso 'campo' è una chiave valida". Questo errore avrebbe avuto senso se avessi provato per esempio un array come chiave.
La revisione del codice serve a migliorare il codice di lavoro. Domande specifiche sul significato degli avvertimenti sono fuori tema lì. –
Puoi 'var_dump ('$ this-> condizioni');'? –
Questo errore si verifica anche durante l'installazione di Drupal in PHP 5.4 http://drupal.org/node/1483986 Credo che qualcosa in PHP 5.4 sia rotto, o forse "campo" è ora una parola chiave PHP riservata che non può essere utilizzata per gli array, ma Mi sto appoggiando a un bug PHP. È stato riferito che questo errore non si verifica nelle versioni precedenti su PHP. – Brain2000