Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

PHP 7: Neue Funktionen

Typ des Rückgabewerts deklarieren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Bei der Deklaration von Funktionen/Methoden oder Closures können Sie die Art des Rückgabewerts bestimmen. Um die automatische Typumwandlung zu verhindern, wechseln Sie in den Strict-Modus.

Transkript

In PHP 7 können Sie, wenn Sie möchten, angeben, was für einen Datentyp eine Funktion, eine Methode oder Closure zurückgibt. Sehen wir uns das am Beispiel an. Wenn Sie bei einer Funktion etwa angeben wollen, dass der Rückgabewert ein Integer ist, dann schreiben Sie das nach einem Doppelpunkt. Wenn wir das ausführen, dann klappt das auch. Sie können dann auch beispielsweise an dieser Stelle einen String angeben. Das wird trotzdem funktionieren, da die normale Typ-Konvertierung stattfindet. Wenn ich hingegen in den strikten Modus wechsle, dann bekomme ich, weil hier ein String ist, eine Fehlermeldung. Ändere ich mal wieder, dann wird es wieder klappen. Und jetzt geht es. Aufpassen müssen Sie, wenn Sie diesen strikten Modus aktivieren, dass der ebenfalls für PHP vorgegebene Funktionen gilt. Ein kleines Beispiel: Ich verwende die Funktion "rand" und das klappt soweit. Bei "rand" gebe ich an, dass ich eine Zufallszahl zwischen diesem und diesem Wert haben möchte. Wenn ich aber jetzt einen String aus dem ersten Wert mache und ich bin in dem strikten Modus, dann erhalte ich eine Fehlermeldung. Wenn ich hingegen nicht in dem strikten Modus bin, wird das akzeptiert, weil eine automatische Konvertierung stattfindet. Interessant ist auch das Verhalten bei Vererbung. Da ist es nämlich so, dass beim Überschreiben, der selbe Typ zurückgegeben werden muss. Ein kleines Beispiel: In dieser Methode gebe ich an, dass der Rückgabetyp von der Klasse A sein muss und wenn ich jetzt diese Klasse erweitere, die Klasse C, und die Funktion überschreibe und sage, es soll der Rückgabetyp B sein, so bekomme ich einen Fehler. Ich rufe das einmal auf und Sie sehen, B muss kompatibel mit A sein. Das funktioniert nicht. Wenn ich hingegen A angebe an der Stelle, dann ist wieder alles in Ordnung. Keine Fehlermeldung. Das ist ein großer Vorteil der definierten Rückgabewerte, dass Sie damit verhindern können, dass bei Methoden in abgeleiteten Klassen nicht der erwartete Rückgabewert verwendet wird und das ist natürlich auch wichtig bei Interfaces. Zusammengefasst: Sie haben gesehen, in PHP 7 können Sie den Rückgabewert bestimmen. Das können skalare Werte sein, aber natürlich auch Namen von Klassen. Sie schreiben das nach den runden Klammern der Methode oder Klasse nach einem Doppelpunkt und Sie können dann den strikten Modus aktivieren oder auch nicht. Wenn Sie den strikten Modus aktivieren, müssen Sie beachten, dass der dann auch für die PHP-eigenen Funktionen gilt.

PHP 7: Neue Funktionen

Sehen und nutzen Sie die vielen Neuerungen in PHP 7 und 7.1, wie zum Beispiel die skalaren Typdefinitionen und Return Type-Deklarationen und zwei neue Operatoren: den null coalescing operator und den spaceship-Operator.

45 min (18 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!