ich PHP bin mit 5.2In PHP ist es ein Problem, eine statische Klasse-Funktion der rufen -> Dereferenzierer
Ich habe den folgenden Code:
class MyClass {
public function __construct() {}
public static function stuff() {
echo 'This is static! <br />';
}
}
$myClass = new MyClass();
MyClass::stuff(); // Reference by class.
$myClass->stuff(); // Reference by instance of class.
Der Ausgang arbeitet in beiden hier Fällen der Ausgang ist:
Dies ist statisch!
Dies ist statisch!
Gibt es ein Problem, die zweite Möglichkeit der Referenzierung im Vergleich zu dem ersten mit?
Da ich nicht eine nicht-statische Funktion mit der gleichen Signatur wie die statischen oben zu haben, dass ich erlaubt wird kein Problem sein. Ich möchte, dass die Funktion statisch ist, da es auch eine Geschwindigkeitssteigerung gibt, wenn statische Funktionen verwendet werden.
Fehle ich etwas oder ist das nur hier Frage in Bezug auf die Semantik, wie die -> dereferenzieren Syntax nicht an, bedeutet dies eine statische Funktion ist?
Gute Frage. :) –
Es ist funktional gleichwertig. Der statische Aufruf wird nur mit einem leeren lokalen Bereich ausgeführt, während '->' Aufrufe ein $ diese Instanz haben. Das Schlüsselwort "static" ist hauptsächlich ein NOP für Ihren Fall, relevant nur für self :: references. – mario
@mario, das ist falsch. Wie auch immer, es ist eine statische Methode und '$ this' ist nicht verfügbar. –