"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP5 overloading

iCA- 05.01.2005 - 22:20 1196 19
Posts

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
Spiel grad ein wenig mit php5 rum -> gibts da wirklich kein constructor overloading oder bin ich einfach zu dumm dafür?

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9818
werd ich mal probieren

naja..mit cgi kann ich auch nix anfangen, ich dachte da mehr an java oder asp.net

Xetrill

Little Overclocker
Avatar
Registered: Dec 2004
Location: Wien
Posts: 85
Hi,

ich würde mich für eine der folgenden methoden entscheiden:

Anhand der Summe der übergebenen Parameter
Code: PHP
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

Code: PHP
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
Registered: Dec 2002
Location: Inside
Posts: 4452
Zitat
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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* :rolleyes:

Luki

UNDER CONSTRUCTION
Avatar
Registered: Feb 2002
Location: 127.0.0.1
Posts: 2347
@watchout
verwendest du ein buch zum erlernen von php5 oder nur die online doku? wenn printmedium, dann sag bitte welches, danke :)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
doku, und try and fail - wobei bei php5 leider sehr viel fail dabei war :rolleyes:

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
Registered: Dec 2002
Location: Inside
Posts: 4452
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?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz