PHP return-Typ
Ist es möglich zu definieren, der return-Typ wie diese?
public static function bool Test($value)
{
return $value; //this value will be bool
}
- "Rückkehr der Schnittstelle von einer Klasse instanziiert"?
- tun cast wie return (bool)$Wert
- Beachten Sie, dass seit PHP 7, es gibt explizite return-Typen. Check meine Antwort, wie es zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro dieser Seite :
http://php.net/manual/en/language.types.type-juggling.php
Können Sie versuchen zu tun,
Nun PHP bieten eine return-Typ-Deklaration von PHP 7. Ich habe erklärt, wie verwenden zurück geben in PHP
, Da diese Frage noch kommt bis in die top Google Ergebnisse, hier ist ein up-to-date-Antwort:
PHP 7 tatsächlich eingeführt die ordnungsgemäße Rückgabe-Typen für Funktionen /Methoden als pro dieser RFC.
Hier ist das Beispiel aus der Anleitung weiter oben verlinkt:
Oder, in einem allgemeineren notation:
Wenn der zurückgegebene Wert nicht mit dem Rückgabetyp, PHP wird implizit konvertiert es zu diesem Typ. Alternativ können Sie aktivieren strikte Typisierung für die Datei über
declare(strict_types=1);
, in welchem Fall ein type mismatch führt zu einem TypeError-Ausnahme.Einfach. Beachten Sie jedoch, dass Sie brauchen, um stellen Sie sicher, dass PHP 7 ist sowohl auf, Ihre Entwicklungs-und Produktions-server.
null
als Wert, siehe die PHP-Doc auf null festlegbaren Typen.Ist es nicht möglich, explizit zu definieren, der return-Typ in der Methode/Funktion Ebene. Wie angegeben, können Sie werfen im Gegenzug, so zum Beispiel ...
Alternativ, Sie können einen Kommentar hinzufügen, in phpDoc-syntax, und viele IDEs abholen der Art von eine Art Abschluss-Perspektive.
Rückgabetyp Hinzugefügt in PHP 7 😉
https://wiki.php.net/rfc/return_types
tun cast wie
Nicht in dem moment, in PHP 5 oder unten, können Sie definieren, geben Sie in Funktion Zeichen aber nicht in der Rückgabewert.
Strenge Erklärungen sind im Geist auf PHP ver. 6 und höher, aber sind noch nicht implementiert.
Vielleicht mit einigen tricks, die Sie tun können, wie Gießen, bevor Sie den Wert...
Andere Sache, die Sie tun können, um sicherzustellen, dass die überschreibungen nicht ändern Sie den Rückgabetyp, ist etwas wie das hier tun:
Dadurch können Sie zulassen, dass Klassen, Erben von der Klasse zum ändern der Funktionalität in OnTest, aber immer noch sicherstellen, dass der Test liefert einen bool-Wert.
Seit der Veröffentlichung von PHP7 Sie haben jetzt eingeführt Return Type Declarations PHP.
Definieren Sie die return-type von Anhängen
: type
beim definieren der Funktion:Standard-Weak-Modus
Standardmäßig verwendet PHP den Schwachen Modus. Die Dokumentation erklärt es auf folgende Weise:
Zum Beispiel, sehen Sie im folgenden Beispiel, wo die Funktion gibt einen
string
, obwohl die angegebenen Rückgabetyp istint
Starke/Strenge-Modus
Können Sie auch sagen, PHP Eingabe strenge/starke mode beim Umgang mit Rückgabetypen durch Einstellung
declare(strict_types=1)
. Was dies bedeutet ist, dass PHP werfenTypeError
wenn eine Funktion gibt, die falsche Art. Die PHP-Dokumentation zu erklären, es in der folgenden Weise:PHP nicht lassen Sie tun, sondern Sie können dies tun:
Du meines Wissens nicht verwenden können, eine Schnittstelle zu zwingen, einen Rückgabetyp
Wenn Sie wissen, die Art der Rückgabewert bool, dann hat es keinen Sinn, Gießen Sie Sie innerhalb der Funktion.
Gibt es keine Möglichkeit zu definieren, der return-Typ einer Funktion innerhalb von PHP, wie es ist Locker typisiert. Sie haben zu tun, Ihre Validierung innerhalb der aufrufenden Funktion.