php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.07.2007, 15:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard TypeHints

Kann man Type Hints auch für Methoden-Rückgabewerte definieren?
Habe auf die schnelle nichts gefunden..
http://ch2.php.net/language.oop5.typehinting
Zergling-new ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.07.2007, 16:25  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Hallo Zergling,

Was meinst du genau?
PHP-Code:
class foo{

public function 
baz($blubb=0) {
// .. irgendwas
return (int) $methodEvaluation;
}


oder bei der Zuweisung
PHP-Code:
$oRet = new foo();
$irgendwas = (int) $oRet->baz(); 
Meines Wissens funktioniert beides. Kann aber sein, dass ich mich gerade von C täuschen lasse!

Gruß
pepe24 ist offline  
Alt 19.07.2007, 16:38  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von pepe24
Was meinst du genau?
PHP-Code:
class foo{

public function 
baz($blubb=0) {
// .. irgendwas
return (int) $methodEvaluation;
}


[...]
Das ist aber kein TypeHint sondern ein cast.

Ich weiß aber auch nicht ganz genau wie sich Zergling TypeHints bei return-Werten vorstellt - und ich weiß auch nicht wann genau das Sinn machen soll?
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 19.07.2007, 17:07  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Zitat:
Das ist aber kein TypeHint sondern ein cast.
Jo, stimmt selbstverständlich. Hatte den Begriff wohl falsch eingeordnet.
pepe24 ist offline  
Alt 19.07.2007, 17:26  
Erfahrener Benutzer
 
Registriert seit: 17.07.2006
Beiträge: 140
louis
Standard

Siehe http://oss.backendmedia.com/PhP60

Zitat:
5. OO changes
...
7. add support for type-hinted return values.
...
__________________
mfg louis
louis ist offline  
Alt 19.07.2007, 18:08  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Type Hints für Argumente/Parameter wäre ja soetwas
Zitat:
public static function map(DataMapper $input, DataMapper $output)
Meine Frage bezog sich hierauf:
Zitat:
public static AnyClass doSomething()
public static bool doSomething()
//..
louis hat damit meine Frage beantwortet, danke!
Auch euch beiden anderen.
Zergling-new ist offline  
Alt 21.07.2007, 04:22  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

java-Style, das hat scho was. Bloss seh ich es kommen, dass PHP6 ähnlich lange brauchen wird, PHP5 abzulösen, wie es jetzt grad mit 5 und 4 is -.-
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 21.07.2007, 20:52  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von KingCrunch
java-Style, das hat scho was.
Vor allem, weil es ja eher C-style ist.
Java kam ja Jahrhunderte später damit an.

Leider deutet der Name "Type-Hinting" darauf hin, dass es wohl wirklich nur Typ-Hinweise sind und nicht endlich mal eine strikte Typbindung (mit Option zum Casten).
Das wäre aber ja auch zu schön gewesen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 21.07.2007, 21:51  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
Vor allem, weil es ja eher C-style ist.
Java kam ja Jahrhunderte später damit an.
Na und? Ähnlich ist ähnlich :P

Zitat:
Leider deutet der Name "Type-Hinting" darauf hin, dass es wohl wirklich nur Typ-Hinweise sind und nicht endlich mal eine strikte Typbindung (mit Option zum Casten).
Das wäre aber ja auch zu schön gewesen.
"Endlich mal" ist vielleicht etwas das falsche Wort, weil PHP genau das ja garnicht will und nie wollte Es ist ja net so, dass es für die einfacher war, oder das es effizienter ist zu Kompilieren.

Ich hätte aber auch nichts dagegen. Finde es vielleicht am Besten, wenn es optional zuschaltbar ist. Dann aber nur per Funktion, weil sonst gibt es wieder Ärger mit 1500 verschiedenen php.ini's. Dann haben haben wir den gleichen Spass, wie jetzt mit register_globals: "Das Script läuft bei mir nicht!" - "Benutz die Forensuche und setze strict_types auf 1" .... -.-
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
 


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] 5.1.1 und Typehints PHP-Fortgeschrittene 7 11.12.2005 13:54
null und Typehints PHP-Fortgeschrittene 1 04.12.2005 11:43


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:41 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.