2016-07-18 5 views
0

Dieser Code funktioniert. Keine Fehler mit php7. Aber meine IDE zeigt Fehler. IDE-Unterstützung sagt mir, dass dieser Code nicht gültig ist. Ist dieser Code OK oder nicht?Objekte per Referenz in PHP zuweisen?

class A { 
    public function hop() { 
     echo "hop"; 
    } 
} 

function feed(A & $a=null) { //this function assign $a reference to A instance 
    $a = new A(); 
} 
feed($a); //$a doesn't exists at this point 
$a->hop(); //Say correctly "hop" 
+0

verschwindet Ihr Fehler, wenn Sie das Leerzeichen zwischen dem Referenzoperator und Ihrer Variablen entfernen? '& $ a' – BeetleJuice

+0

ist dein ide php7 bewusst? –

+0

Es ist nicht unbedingt ungültig, aber Sie erhalten eine undefinierte Variable Warnung. –

Antwort

0

Ist dieser Code OK oder nicht? ersten

Der PHP-Interpreter selbst keine Syntaxfehler (Code nicht ausgeführt werden) oder auch eine Warnung wirft so das gilt PHP-Code

Allerdings ist es schlechte Gewohnheit, ohne eine Variable zu verwenden es zu deklarieren, also ist Ihre IDE richtig, Sie zu stören, wenn Sie feed($a) anrufen, ohne zuerst $a=null zu erklären;

+0

Sie würden jedoch eine Nachricht erhalten. –

+0

Sie haben absolut Recht, und wie ich schon sagte, es ist kein guter Code. Notizen sind jedoch kein Zeichen für ungültigen Code. Sie sollen Ihnen helfen, besseren Code zu schreiben. Ungültiger Code löst schwerwiegende Fehler aus. Ich antworte dem OP, der das Support-Team seiner IDE erfahren hat, dass "dieser Code nicht gültig ist" – BeetleJuice