php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.01.2012, 04:12  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Zitat:
Zitat von php.de
2) in Funktionen/Methoden zuerst immer den Datentyp der übergebenen Parameter kontrollieren und Exceptions werfen, falls der Datentyp nicht ok ist.
Zitat:
Zitat von zwutz
Wenn ihr feste Datentypen haben wollt, verwendet doch eine Sprache, die sie hat.
Beide Aussagen halte ich für zutreffend, was meiner Ansicht nach ein gewisses „Problem“ von PHP aber auch von anderen Sprachen ist.

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.
__________________
Blog | Buch | Kaloa

Geändert von mermshaus (06.01.2012 um 04:56 Uhr).
mermshaus ist gerade online   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.01.2012, 10:26  
php.de
Gast
 
Beiträge: n/a
Standard

Zitat:
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.
Wie meinst du das? Traints kenne ich, aber diese Methode check nicht.
  Mit Zitat antworten
Alt 06.01.2012, 10:35  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mermshaus Beitrag anzeigen

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.
Kannst du das näher erläutern?

Edit: Ah, verstehe. Warum nicht einfach eine Funktion dafür erstellen?
__________________

Geändert von dsentker (06.01.2012 um 12:52 Uhr).
dsentker ist offline   Mit Zitat antworten
Alt 06.01.2012, 11:19  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

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.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.

Geändert von tr0y (06.01.2012 um 11:26 Uhr).
tr0y ist offline   Mit Zitat antworten
Alt 06.01.2012, 17:16  
Neuer Benutzer
 
Registriert seit: 05.01.2012
Beiträge: 15
PHP-Kenntnisse:
Anfänger
Southlinch befindet sich auf einem aufstrebenden Ast
Standard

Ich danke euch für die Antworten

... denke das kann geschlossen werden
Southlinch ist offline   Mit Zitat antworten
Alt 07.01.2012, 20:16  
Benutzer
 
Registriert seit: 04.09.2009
Beiträge: 34
PHP-Kenntnisse:
Anfänger
cnc_darklord befindet sich auf einem aufstrebenden Ast
Standard

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:
new Int(42) != 42 
http://de.php.net/manual/de/book.spl-types.php
cnc_darklord ist offline   Mit Zitat antworten
Alt 08.01.2012, 19:23  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

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:
Zitat von tr0y
In PHP ist und wird es nicht möglich sein Datentypen zu deklarieren, jene sind Statisch im Parser festgelegt.
Du meinst, sowas wie string oder int neu hinzuzufügen?
__________________
Blog | Buch | Kaloa

Geändert von mermshaus (08.01.2012 um 20:55 Uhr).
mermshaus ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datentype zitate

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum