PHP-Funktion überladen
Kommt aus C++ - hintergrund 😉
Wie kann ich die überlastung PHP-Funktionen?
Einer Funktion definition, ob es irgendwelche Argumente, und ein anderer, wenn es keine Argumente?
Ist es möglich in PHP? Oder sollte ich wenn sonst zu prüfen, ob alle übergebenen Parameter aus $_GET und POSTEN???? und beziehen Sie Sie?
InformationsquelleAutor der Frage Vamsi Krishna B | 2011-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht überladen, PHP-Funktionen. Funktions-Signaturen basieren nur auf Ihren Namen und enthalten keine Argumente, so dass Sie können nicht zwei Funktionen mit dem gleichen Namen. Klasse die Methode überladen ist anders als in PHP als in vielen anderen Sprachen. PHP verwendet das gleiche Wort, aber es beschreibt ein anderes Muster.
Können Sie jedoch deklarieren Sie eine Variable Funktion , nimmt eine variable Anzahl von Argumenten. Verwenden Sie
func_num_args()
undfunc_get_arg()
um die Argumente zu übergeben, und verwenden Sie in der Regel.Beispiel:
InformationsquelleAutor der Antwort BoltClock
PHP nicht die Unterstützung der traditionellen Methode überladen, aber eine Möglichkeit, Sie könnten in der Lage sein zu erreichen, was Sie wollen, wäre zu nutzen
__call
magic-Methode:InformationsquelleAutor der Antwort Stephen
Über load-Funktion einfach nur das tun, übergeben Sie parameter als null standardmäßig
InformationsquelleAutor der Antwort Adil Abbasi
Kann es sein hackish einige, aber ich erfuhr auf diese Weise aus, wie Cakephp funktioniert einige Funktionen und haben es angepasst, weil ich mag die Flexibilität, die Sie erstellt
Die Idee ist, Sie haben unterschiedliche Art der Argumente, arrays, Objekte usw., dann werden Sie erkennen, was Sie waren vergangen, und gehen von dort aus
InformationsquelleAutor der Antwort SeanDowney
Was dazu:
InformationsquelleAutor der Antwort Marlin Ouverson
InformationsquelleAutor der Antwort raman deep
In PHP 5.6 können Sie die splat-operator
...
als letzten parameter und tun, Weg mitfunc_get_args()
undfunc_num_args()
:Können Sie es verwenden, zum entpacken der Argumente:
Ist äquivalent zu:
InformationsquelleAutor der Antwort mtpultz
PHP unterstützt weder das überladen für jetzt. Hoffe dies wird umgesetzt in den anderen Versionen wie andere Programmiersprachen.
Kasse dieser Bibliothek, Diese können Sie verwenden PHP Überlastung in Bezug auf die Verschlüsse.
https://github.com/Sahil-Gulati/Overloading
InformationsquelleAutor der Antwort Sahil Gulati
Leider gibt es keine überladung in PHP als auch in C#. Ich habe aber einen kleinen trick. Ich erkläre Argumente mit default-null-Werte und überprüfen Sie Sie in eine Funktion. Auf diese Weise werden meine Funktion können verschiedene Dinge tun, je nach Argumenten. Unten ist ein einfaches Beispiel:
InformationsquelleAutor der Antwort Rovshan Mamedov