2013-11-26 4 views
5

Ich erstelle meinen eigenen MVC Rahmen, und ich möchte, dass es sehr einfach ist, aber wenn ich einige IDE 's wie Eclipse oder NetBeans benutze sie neigen dazu, mir Warnungen zu sagen, dass diese Variablen nicht initialisiert oder sie nicht erkennen, was Geben Sie an, dass sie nicht autocomplete die Klassenmethoden oder Eigenschaften sind, von denen die Variable sein soll.Wie definiert man eine PHP-Variable als spezifischen Klassentyp, bevor ein Objekt instanziiert wird?

Um dies zu überschreiben, habe ich eine PHP-Datei erstellt, wo die globale Umgebungsvariable gesetzt und ein neues Objekt instanziiert und dann zerstört wird, so dass die IDE es erkennt und ich damit gut arbeiten kann.

Aber dann führen diese Klassenkonstruktoren zu dieser Zeit, und es könnte gefährlich sein und sogar meinen Code verlangsamen. Also, um dies besser zu überschreiben, wie könnte ich einen Variablentyp für eine bestimmte Klasse definieren, ohne ihn zu instanziieren?

Wie in Delphi tun wir var Test = TTest; und in Java wir tun String testString; vor testString = new String;

Antwort

10

PHP lose getippt, so dass Sie es nicht tun können, wie Sie in Java zu tun. Sie können Typhinweisen für benutzerdefinierte Klassen jedoch angeben. Sehen Sie diese Beschreibung auf PHP.net: http://php.net/manual/en/language.oop5.typehinting.php

+0

das ist geeignet, danke. Ich kann einen angedeuteten Parameter in der Klassenmethode erstellen, die ich das externe Objekt verwende. – PSyLoCKe

17

auf dem IDE Je Sie PHPDoc Kommentare verwenden können, um Code-Vervollständigung

/** @var YourClass */ 
private $variable; 

Dies ist IDE spezifische obwohl

+0

Hier ist die offizielle Dokumentation von ** PHPDocumentor **: https://www.phpdoc.org/docs/latest/references/phpdoc/tags/var.html – JavierFuentes

0

Ich weiß jetzt, dass Facebook-Entwickler erstellt zu bekommen eine PHP-Variante namens Hack, die ein PHP mit starken Typen ist.

Verwandte Themen