PHP5 overloading
iCA- 05.01.2005 - 22:20 1196 19
ica
hmm
|
Spiel grad ein wenig mit php5 rum -> gibts da wirklich kein constructor overloading oder bin ich einfach zu dumm dafür?
|
watchout
Legendundead
|
sicher geht das... da bist bei mir übrigens an der richtigen stelle - hab mich inzwischen schon sehr viel mit dem neuen zeug auseinandergesetzt - kannst mich ja auch im icq anquatschen...
|
ica
hmm
|
na gottseidank, schön wäre aber noch gewesen wenn du gesagt hättest wie es geht muss ich da mit __call hantieren? denn zwei __construct erlaubt er nicht wirklich.
|
watchout
Legendundead
|
aso - wartamal - willst du constructors von parent-classen overloaden (was ich jetzt annahm) oder innerhalb einer class?
innerhalb einer wirds kompliziert, es gibt da ja zwar eine schöne fertige funktion fürs overloaden, aber bei einem constructor verwendet er die __call function nicht, wodurch das useless wird
aber normal braucht man das overloading nicht so wie es in java normal verwendet weil man ja sowieso die optionalen argumente hat, und keine festen variablentypen und wwi...
|
ica
hmm
|
naja, ich bin das irgendwie von c++ gewohnt meinen klassen mehrer konstruktoren zu verpassen - also schon alles innerhalb einer klasse.
also ein konstruktor für 2 argumente, einer für 3 usw.
|
watchout
Legendundead
|
naja, das is ja in php durch die optionalen argumente wie gesagt eher useless, und ist für die performance auch besser so.
naja, auf jeden fall kannst du deinen eigenen constructor machen, und den per __call "overloaden" und halt immer mit ->constructor aufrufen, aber davon rate ich dir ab, weil das alles etwas wackelig ist, und im endeffekt wenig sinn hat
naja, aber trotzdem geb' ich dir recht dass sowas "dazugehören" sollte, aber php5 is auch noch ziemlich viel krücke - vor allem auch bei den exceptions, ich hoffe in den bereichen auf wesentliche verbesserungen mit den nächsten versionen...
|
ica
hmm
|
was meinst du mit optionalen argumenten?
man hat zwar schnell was zusammengeschustert in php...aber ich find die sprache so dermaßen schlecht und hässlich....das traurige ist nur, dass ich keine alternative hab weil anderer webspace meist zu teuer ist.
|
watchout
Legendundead
|
bei welchem provider hast du webspace mit php5 aber ohne cgi?
myfunc(x[,y[,z]])
im script: function myfunc($x,$y=0,$z=1000) {;}
|
ica
hmm
|
werd ich mal probieren
naja..mit cgi kann ich auch nix anfangen, ich dachte da mehr an java oder asp.net
|
Xetrill
Little Overclocker
|
Hi, ich würde mich für eine der folgenden methoden entscheiden: Anhand der Summe der übergebenen Parameter class Sample1
{
public function __construct()
{
$arguments = func_get_args();
$argumentCount = count( $arguments );
switch ( $argumentCount ) {
case 1:
doSomething( $argument[0] );
break;
case 2:
doSomethingElse( $argument[0], $argument[1] );
break;
default:
break;
}
}
}
oder mit optionalen Parametern class Sample2
{
public function __construct( $arg1, $arg2 = null, $arg3 = null )
{
switch ( false ) {
case is_null( $arg3 ):
doSomething( $arg1, $arg2, $arg3 );
break;
case is_null( $arg2 ):
doSomethingElse( $arg1, $arg2 );
break;
default:
doDefaultOpertation( $arg1 );
}
}
}
MfG Xetrill
|
Rektal
Here to stay
|
vor allem auch bei den exceptions, ich hoffe in den bereichen auf wesentliche verbesserungen mit den nächsten versionen... Was paszt bei denen nicht? Erklaer Entwickle seit ein paar Monaten an einem groesserem Projekt, Exception bisher kein Problem gehabt.
|
watchout
Legendundead
|
Also, dann versuch mal eine PHP-Interne Exception abzufangen oder versuch's nicht, es geht nämlich nicht... Als Grund wird genannt, dass das ja Errors und net Exceptions sind... naja *hust*
|
Luki
UNDER CONSTRUCTION
|
@watchout verwendest du ein buch zum erlernen von php5 oder nur die online doku? wenn printmedium, dann sag bitte welches, danke
|
watchout
Legendundead
|
doku, und try and fail - wobei bei php5 leider sehr viel fail dabei war man darf aber nicht vergessen dass es immer noch eine wesentliche verbesserung zum 4er is' - und dass der Hauptgrund, warum man keine Exceptions der PHP-Funktionen abfangen kann wahrscheinlich darin liegt, dass die Programmierer der Extensions darauf pfeifen sich gedanken darüber zu machen, was jetzt nun wirklich eines Errors würd ist, und was man auch mit einer Exception bewältigen kann. denn ich kann mir kaum vorstellen, dass es keine funktionalitäten für exceptions im code geben sollte...
|
Rektal
Here to stay
|
Du redest jetzt von Fehlverhalten von Funktionen, die aber keine 'echte' Exception schmeissen, sondern einfach nur ein Warning ode r Fatal zurueckliefern, obwohl eine echte Exception sinniger waere?
|