Überladen ist ein sehr nützliches Feature von einigen Programmiersprachen zu Objekten. Allerdings tuti OO-Sprachen unterstützen es nicht, und einige der "Umsetzung" oder oder verschieden begrenzt. In der Regel Funktionen oder Methoden, ermöglicht eine Überlastung Sie zwei oder mehr Funktionen / Methoden, die den gleichen Namen haben, aber akzeptieren verschiedene Parameter, zum Beispiel zu erstellen:
1 2 3 4 5 6 7 8 9 10 11 | Funktion sum (a: int, b: int) { / / Code } Funktion sum (a: float, b: float) { / / Code } Funktion sum (a: string, b: string, c: string) { / / Code } |
Die Wahl der richtigen Funktion zu nutzen, ist natürlich, diktiert allein durch die "Art" (und auch die Anzahl) der Parameter an die Funktion übergeben sich. Sie können, Kegel ein paar Zeilen Code, emulieren dieses Verhalten, auch in Sprachen, die nicht unterstützen Sie es direkt. Zum Beispiel in PHP können Sie eine Funktion wie diese:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | / ** * Diese Funktion verhält sich anders auf der Grundlage der Input-Parameter. * In diesem Beispiel können wir "verstehen", wie man auf Basis der Analyse verhalten * Von den Eingabeparametern und dann: * * - Recover, auch wenn die übergebenen Parameter in einer anderen Weise * - Die Funktion, verschiedene Code ausführen auf Eingabeparameter * * * / $id_qualcosa = '' ) { get_qualcosa function ($ id_qualcosa ='') { func_num_args ( ) > 0 ) { // numero degli argomenti if ( func_num_args ()> 0) {/ / Anzahl der Argumente func_get_arg ( 0 ) ; // prendo il primo $ Arg = func_get_arg (0) / / die erste is_array ( $arg ) ) { // se il primo argomento è un array... if ( is_array ($ arg)) {/ / wenn das erste Argument ist ein Array ... $arg [ 'id_qualcosa' ] ; // faccio qualcosa o recupero il parametro Id_qualcosa $ = $ args ['id_qualcosa'], / / do something oder zurückfordern Parameter } } } |
Diese Technik kann hilfreich sein, wenn wir eine Funktion, die in verschiedenen Bereichen aufgerufen werden kann, haben. Angenommen Sie haben eine Funktion, die Informationen Auszüge aus einer Datenbank eines Benutzers. Dies könnte in Form:
1 2 3 4 5 6 7 8 9 10 11 12 13 | / ** * Holen Sie sich die Benutzer Informationen über die ID * * @ Param $ id die ID der Datenbank * / $id_user = '' ) { get_user_info function ($ id_user ='') { func_num_args ( ) > 0 ) { // numero degli argomenti if ( func_num_args ()> 0) {/ / Anzahl der Argumente func_get_arg ( 0 ) ; // prendo il primo $ Arg = func_get_arg (0) / / die erste is_array ( $arg ) ) { // se il primo argomento è un array... if ( is_array ($ arg)) {/ / wenn das erste Argument ist ein Array ... $arg [ 'id_user' ] ; // $arg === $_POST Id_user $ = $ args ['id_user'] / / $ arg === $ _POST } } } |
Diese Funktion kann in einer Bibliothek (verwendet werden mialib.php ) und forderte von anderen PHP-Funktionen. Wenn wir Ajax-Techniken oder einfaches Formular zu verwenden, wäre es schön, auf die gleiche Funktion ohne den Bau eines speziell Wiederverwendung. Wenn dem so ist haben wir ein Format, das über ein Menü erfordert select die Auswahl des Benutzers:
1 2 3 4 5 6 7 8 9 | "post" action = "sample.php" > < Form method = "post" action = "sample.php"> "id_user" > < wählen name = "id_user"> "1" > Utente 1 < / option > < Option value = "1"> User 1 </ Option > "2" > Utente 2 < / option > < Option value = "2"> User 2 </ Option > "3" > Utente 3 < / option > < Option value = "3"> User 3 </ Option > </ wählen > "hidden" name = "comando" value = "get_user_info" / > < Eingang type = "hidden" name = "command" value = "get_user_info" /> "submit" value = "Invia" / > < Eingang type = "submit" value = "Submit" /> </ Form > |
Unsere sample.php könnten sein:
1 2 3 4 | / / Fügen Sie die Datei mit meinen Funktionen ; include_once "mialib.php"; / / Aufruf der Funktion ein Array übergeben my $ _POST 'echo ' . $_POST [ 'comando' ] . "( \$ _POST );" ) ; eval ("echo '. $ _POST [' command ']." (\ $ _POST );"); |










Es gibt keine Kommentare für diesen Beitrag
Hinterlasse einen Kommentar