Kann man einen Paramter einer Funktion überschreiben?

LukaszRT

Grünschnabel
Hallo

Mir ist bekannt, dass man funktionen überschrieben kann. Allerdings stelle ich mir die Frage ob ich einen Parameter überschreiben kann. Ich würde gerne in der Funktion mysql_query()

mixedmysql_query ( string $query [, resource $link_identifier = NULL ] )

den optionalen Parameter $link_identifier von Standart NULL auf eine Wert setzen. Sodass im Endeffekt folgendes herauskommt:

mixedmysql_query ( string $query [, resource $link_identifier = 'beispiel'] )

Hätte jemand eine Idee? Was ich damit bezwecken will ist, dass wenn kein link_identifier angegeben wird, aber dennoch mehrere Verbindungen offen sind, immer eine bestimmte Datenbankverbindungen angesprochen wird.
 
Mir ist bekannt, dass man funktionen überschrieben kann.
Kannst du ein Beispiel zeigen? Überschreiben im Sinne von Function Overloading gibt es in PHP nicht.


Du müsstest für dein Anliegen eine neue Funktion erstellen, die mysql_query() aufruft. Übrigens würde ich das nicht unbedingt empfehlen, da du so bereits implizit globale Variablen erstellst.
 
Ich würde meinen Code gar nicht erst auf einer PECL-Erweiterung aufbauen.
Nicht nur fremde Leute verstehen den Code teils nicht mehr (seit wann hast mysql_query() nur 2 Parameter?), sondern du erstellst auch eine sehr strikte Abhängigkeit zu einer PECL-Erweiterung. Siehe auch den Kommentar auf der von dir verlinkten Seite: http://php.net/manual/de/function.override-function.php#50821

Wenn diese PECL-Erweiterung entfernt wird, funktioniert dein Code nicht mehr. Das ist aber halb so schlimm, denn dein Code wird bald sowieso nicht mehr funktionieren, wenn die bereits als veraltet gekennzeichnete MySQL-Erweiterung aus dem PHP-Core entnommen wird ;)
 
Zumindest wenn man ihn in der neuen Version ausführt wird er womöglich nicht funktionieren. Allerdings wäre 1 Zeile zu entfernen auch wenig schwierig, so denke ich.
 

Neue Beiträge

Zurück