Frage zum Grübeln: überspringen eines Parameters

Original geschrieben von boom
Wir sollten ne eMail an die PHP-leute schreiben, php5 braucht neben vollständiger OOP-Unterstützung, Operatorenüberladung ... Sonst noch was wichtiges ?
Ich würde mich über Variablen- und Typendeklaration freuen. Aber da werden wir wohl keine Chance haben :(. Das wurde ausführlichst diskutiert.
 
Original geschrieben von boom
Wir sollten ne eMail an die PHP-leute schreiben, php5 braucht neben vollständiger OOP-Unterstützung, Operatorenüberladung ... Sonst noch was wichtiges ?

nein bitte nicht.

Nun PHP hat doch Operatorüberladung, nur kann mann nur in der Menge überladen da PHP keine stark typisierende Sprach ist.

Und das ist auch gut so, denn als stark typisierende Programmiersprachen sind C++, Java & C#, Smalltalk Delphi usw besser geeignet.

Auch wirds mit dem OOP in der richtung nicht.
Bei PHP wirkts etwas angeflanscht und hat in PHP auch nichts verloren.

Andere Skriptsprachen ists besser aufgehoben z.b Ruby welche wirklich trotz das sie eine Dynamische Sprache ist ziemlich stark OOP ist.
 
Original geschrieben von Wolfsbein
Ich würde mich über Variablen- und Typendeklaration freuen. Aber da werden wir wohl keine Chance haben :(. Das wurde ausführlichst diskutiert.

Wolfsbein weshalb in PHP?

PHP hat seine stärken als Scriptsprache.
Starke Typisierung hat seine stärken aber auch eine grosse Schwäche. Die schnelle entwicklung geht flöten.
Und was PHP sehr erfolgreich macht auch:
Das PHP sehr einfach ist.

Das währe mir zu schade für PHP.

Lernt lieber eine 2. bzw 3. Alternativ sprache.
 
back to topic, wozu sollte man 'überladungen' nutzen anstatt smartere lösungen in Erwägung zu ziehen? auch wenn es 'üblich' sein sollte ist es deswegen ja nicht mehr oder weniger geeignet.

man könnte zB parameter beim aufruf einer funktion so ähnlich wie <tags> benutzen ->

xyz($param3='holla, die waldfee', $param5=562, $param2);

leider ists in php nicht möglich, kennt jemand sprachen in denen diese art des aufrufs verfügbar ist?

beherrscht ruby eigentlich auch AOP?
 
das geht daher nicht, da 1. dazu fest vorgeschriebene parameter nötig wären, und der funktionsaufruf nicht anhand des bloßen werts einer variablen ermitteln kann wlecher parameter das ist, daher ist eine reihenfolge vorgeschrieben.
 
...öhö

methodus, ich weiß das es nicht geht, das solltest daran erkannt haben, dass ich 1. schrieb
leider ists in php nicht möglich, kennt jemand sprachen in denen diese art des aufrufs verfügbar ist?
und 2. weil mit smarteren lösungen jene wie auf seite 1 beschrieben gemeint war, ach und 3. weil die funktion nicht nur mit seinen werten aufgerufen werden sollte, aber ich schlage vor du liest erstmal alle zeile von vorne.

im übrigen beinhaltet diese lösung von seite eine abwicklung ohne feste reihenfolge und ohne wert-übergabe und zwar mit hilfe einer eigenen funktion.
 
Zuletzt bearbeitet:
sorry, frühs 9:00 noch ne halbe stunde bis knoppers in sicht, da is man halt noch nicht auf dem posten... *fg*

btt: im gründe müsste man nur die entwickler von php anhauen, dass man funktionen mit der form name(,,$var); benutzen kann, so wie es in javascript möglich ist.
 
ok, nur dann ist man immer noch auf eine reihenfolge beschränkt. klar im grunde kurz die man zu der func anschauen und gut ist, doch intuitiv ist es deshalb noch lange nicht.

wobei das mit dem schlagwort intuitiv ja mitlerweile wieder überhand nimmt, es gibt da ein zitat von einem programmierer dessen name mir unbekannt ist, aber der sagte mal so oder so ähnlich: the only human intuitive interaction are nipples.
 
Original geschrieben von ohio
back to topic, wozu sollte man 'überladungen' nutzen anstatt smartere lösungen in Erwägung zu ziehen? auch wenn es 'üblich' sein sollte ist es deswegen ja nicht mehr oder weniger geeignet.

Wieso mann Überladungen nutzen sollte?
Weil sie logisch sind.

Was soll denn funktionen sein. Eine funktion soll eine Blackbox sein, bei der ich mich nicht um die implementierung kümmern muss.

Daher sind aufrufe mit konstrukten wie
0 en eher hinderlich.
Das endet in unschönen Methoden wie sie oft in der WinAPI oder auch anderen APIs vorkommen
4 Parameter und der 2. und 4. Parameter darf null sein.
das ist keine sinnvolle Implementierung.
Es ist nicht logisch mit Parameter null zu programmieren.
Logischer ist das ich entweder die Methode mit 2 Parameter oder mit 3 oder 4 aufrufe.
Mann sieht es z.b. auch an den php nativen Funktionen, auch hier findet mann zumeist sinnvolle Parameter und intuitive Dinge.

int tuWas(int, String, MyClass);
int tuWas(int, String);

Diese Methode lässt sich alleinig mit der Deklaration beschrieben.
Wenn du das ganze so zusammenfassen willst das MyClass Parameter auch null sein darf, kannst du das schon nicht mehr nur mit der Deklaration beschreiben.

int tuWas(int, String, MyClass);
MyClass can be null

Das ist ein grober Nachteil, da viele IDE's einem die verschiedenen Methoden
Automatisch zur auswahl geben.
Mit einer null Parameter Methode lässt sich dies nicht dokumentieren

Es gibt dazu extra Design Pattern die einem das nahelegen.
http://www.aw.com/catalog/academic/product/0,4096,0201633612,00.html
<- kann ich empfehlen.
 
ich hätte nicht gedacht, das diese Frage so einen wirbel macht und solangsam erkenne ich den sinn von überladung.

vllt. wäre ein tutorial zu überladungen in PHP ganz zweckvoll, da das in der manual nicht (und wenn, dann nur wenig) beschrieben ist. weil OOP in php schon seit einiger zeit größere beachtung geschenkt wird, wärs interessant über die eine oder andere möglichkeit mehr zu erfahren. jedenfalls seh ich das so (ich weiß: einer ist keiner)
 
Zurück