In sostanza avevo una classe che definiva delle variabili di istanza che venivano poi usate in un metodo come segue:
class MyClass{
private $ORDER_BY_NAME = " ORDER BY name ";
public function doQuery(){
...
$sql .= $ORDER_BY_NAME;
...
}
}
Come si può notare io usavo la variabile di istanza seguendo le regole Java, ovvero ricerca della variabile nell'oggetto qualora non sia già definito nella funzione (o nel blocco di codice). Ebbene, questo in PHP non funziona, è bensì necessario dereferenziare automaticamente la variabile passando attraverso l'oggetto:
class MyClass{
private $ORDER_BY_NAME = " ORDER BY name ";
public function doQuery(){
...
$sql .= $this->ORDER_BY_NAME;
...
}
}
Un vero errore da principianti!
E dire che solitamente uso sempre i qualificatori this, super, ecc. proprio per identificare meglio la visibilità delle variabili e non incorrere in simili errori.
Insomma, una distrazione che mi è costata diverso tempo.
Nessun commento:
Posta un commento