PHP5 overloading

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php5_overloading_133762/page_1 - zur Vollversion wechseln!


ica schrieb am 05.01.2005 um 22:20

Spiel grad ein wenig mit php5 rum -> gibts da wirklich kein constructor overloading oder bin ich einfach zu dumm dafür?


watchout schrieb am 05.01.2005 um 22:39

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 schrieb am 05.01.2005 um 23:03

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 schrieb am 05.01.2005 um 23:58

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 schrieb am 06.01.2005 um 02:01

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 schrieb am 06.01.2005 um 02:16

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 schrieb am 06.01.2005 um 02:32

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 schrieb am 06.01.2005 um 11:10

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 schrieb am 06.01.2005 um 12:24

werd ich mal probieren

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


Xetrill schrieb am 13.01.2005 um 14:10

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 schrieb am 13.01.2005 um 16:45

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 schrieb am 13.01.2005 um 21:05

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 schrieb am 13.01.2005 um 21:15

@watchout
verwendest du ein buch zum erlernen von php5 oder nur die online doku? wenn printmedium, dann sag bitte welches, danke :)


watchout schrieb am 14.01.2005 um 00:14

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 schrieb am 14.01.2005 um 09:15

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?




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026