Was bedeutet "dynamisch deklariertes Feld" in dieser Situation?

8

Ich bin ziemlich neu in OOP und PHP. Ich benutze die IDE PHPStorm und es gibt mir diese Warnung (siehe unten) in meinem Verweis auf $width .

Hier ist mein Code:

%Vor%

Ich habe den Begriff "field" noch nie zuvor gesehen und bin mir nicht ganz sicher, was der Satz "Field dynamisch deklariert" bedeutet.

Es scheint so, als wäre diese Warnung gerade erst aufgetaucht, nachdem ich PhpStorm aktualisiert habe. Habe ich etwas falsch gemacht?

Auch wenn jemand kurz erklären kann, was die Warnung bedeutet "Hinweis: Prüfung wird nicht für Objekte vom Typ" stdClass "oder abgeleitet"?

    
strictlyhdmi 11.03.2015, 17:44
quelle

1 Antwort

9

Bitte Datei | Caches ungültig machen ... und IDE neu starten - Ihre Indizes scheinen nach dem Update beschädigt / veraltet zu sein.

  

und ich bin mir nicht ganz sicher, was der Satz "dynamisch deklariertes Feld" bedeutet.

Dies bedeutet, dass das Feld / die Eigenschaft nicht explizit deklariert wird, sondern auf den% code_% und __get() magischen Methoden basiert, damit es funktioniert.

In Ihrem Fall haben Sie das Feld richtig deklariert ( __set() ) - es ist nur ein Fehler in der IDE, der nach einem IDE-Update häufig auftritt.

  

Auch wenn jemand kurz erklären kann, was die Warnung bedeutet "Hinweis: Prüfung wird nicht für Objekte vom Typ" stdClass "oder abgeleitet"?

Es bedeutet genau das: Diese Prüfung wird nicht durchgeführt, wenn das Objekt eine Instanz von private $width; ist oder diese Klasse erweitert.

Dies liegt an der Art von stdClass - es kann Aufrufe an beliebige Felder akzeptieren (sogar undefiniert - es definiert es stillschweigend während der Laufzeit für Sie) und wirft nicht die Fehler, die normale Klassen in Fällen haben würden .

    
LazyOne 11.03.2015, 18:57
quelle

Tags und Links