Frage
Gibt es eine Möglichkeit, eine PHP-Klasse zu nennen (z. B. $ var = new classname) und habe var speichert den von der Funktion zurückgegebene Wert classname?
Oder gibt es eine Möglichkeit, eine Klasse zu nennen und nicht hat es die Funktion mit dem gleichen Namen durchführen?
Lösung
Die Funktion mit dem gleichen Namen wie die Klasse war sie Art und Weise 'Konstrukteurs in PHP 4 gearbeitet. Diese Funktion wird automatisch aufgerufen, wenn eine neue Objektinstanz erstellt wird.
In PHP 5 eine neue magische Funktion __construct () wird stattdessen verwendet. Wenn Ihr php5 und beinhaltet nicht eine ‚__construct‘ Methode verwendet, wird PHP für eine alten Stil Konstruktor-Methode suchen. http://www.php.net/manual/en/language. oop5.decon.php
Wenn Sie also php5 verwenden, fügen Sie eine ‚__construct‘ Methode, um Ihre Klasse, und PHP wird beendet Ihre ‚Methode mit dem gleichen Namen wie die Klasse‘ Ausführen, wenn ein neues Objekt erstellt wird.
Andere Tipps
Es ist möglich, in PHP5 mit magischer Methode __toString (); einen Wert aus der Klasseninstanz / Objekt zurück.
einfach
class MyClass{
function __construct(){
// constructor
}
function __toString(){
// to String
return 5;
}
}
$inst = new MyClass();
echo $inst; // echos 5
Konstrukteurs nicht Wert zurück (in der Tat kann man das nicht tun). Wenn Sie einen Wert aus der Instanz der Klasse zu erhalten, verwenden Sie die __toString () magische Methode.
Constructors nicht Rückgabewerte, werden sie das neue Objekt Sie erstellen instanziiert verwendet. $ Var wird immer einen Verweis auf das neue Objekt enthält den Code mit Ihnen zur Verfügung gestellt.
Um ehrlich zu sein, aus Ihrer Frage, es klingt wie Sie die Absicht der Klassen nicht verstehen.
$var = new classname
wird immer eine Instanz von classname
zurückzukehren. Sie können es nicht etwas anderes zurückkommen müssen.
Lesen Sie diese ... http://www.php.net/manual/en/language.oop5. php