| | | | |
| | |||
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Zitat:
Ich mag weder schwache (implizite Typumwandlung, falls anderer Datentyp benötigt) noch dynamische (Datentyp einer Variablen ist veränderbar) Typisierung. Beides macht Code unverständlicher und fehleranfälliger. Echte Typehints (function f(int $i, float $f)) für primitive Datentypen (String, Integer, …) stehen auf meiner Wunschliste für PHP ganz weit oben. Das ist aber konzeptionell vermutlich wirklich einfach kein PHP-Ding. Die „ungarische“ Notation (http://de.wikipedia.org/wiki/Ungarische_Notation) ist dabei für mich auch nur ein Versuch, die schwache und dynamische Typisierung in PHP beherrschbar zu machen. Allerdings bleibt die Einhaltung eine Frage der Disziplin der Programmierer. In PHP 5.4 werde ich definitiv ausprobieren, wie es sich mit einem „Type-safety“-Trait arbeitet, der eine Methode check($dataType, $value) zur Verfügung stellt. Geändert von mermshaus (06.01.2012 um 04:56 Uhr). | ||
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer | Traits liefern Methoden ( und Eigenschaften ), inbuild ist keinerlei Funktionalität in Traits, würde einem Class-Symbiont auch widersprechen. Denn der kann bis nix was klassen nicht auch können. Zum Start-Beitrag: In PHP ist und wird es nicht möglich sein Datentypen zu deklarieren, jene sind Statisch im Parser festgelegt. Variablen ( Memory-Points ) erben automatisch die Höhere Datentyp-Zuweisung bei Operationen und Zuweisungen, beginnend mit Resources vorbei an Null über String bis hin zu Int, Object und Array.
__________________ Geändert von tr0y (06.01.2012 um 11:26 Uhr). |
| | |
| | |
| Benutzer Registriert seit: 04.09.2009
Beiträge: 34
PHP-Kenntnisse: Anfänger ![]() | Der vollständigkeitshalber möchte ich noch auf die SPL Typs hinweisen, mit den man ein "workaround" für typ hints hat. Die SPL stellt Typen in Form von Objekten bereit. Leider ist man dann auf diese "Objekt Typen" beschränkt da sich nicht identisch zu den nativen Typen sind. PHP-Code: |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Kurz der Vollständigkeit halber zu den Traits: Ich hatte das hier etwas ausformuliert: - http://www.phpforum.de/forum/showpos...1&postcount=68 Wie man es konkret umsetzt, ist ja nicht so entscheidend. Habe die Syntax noch nicht drauf, aber den Trait würde man eben einbinden und in den „echten“ Methoden die Eingabeparameter sofort nach Aufruf mit den jeweiligen „assert“-Methoden prüfen. Sorry, wenn das hier im Thread missverständlich war. Das geht natürlich auch mit normalen Funktionen, was ich aber nicht als „sauber“ empfinde. Zitat:
Geändert von mermshaus (08.01.2012 um 20:55 Uhr). | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| datentype zitate |