La surcharge est une fonctionnalité très utile de certains langages de programmation à des objets. Cependant tuti langages OO ne le supporte pas, et certains des «exécution» ou limitées ou différentes. En général, les fonctions ou les méthodes, la surcharge vous permet de créer deux ou plusieurs fonctions / méthodes qui ont le même nom mais accepter des paramètres différents, par exemple:
1 2 3 4 5 6 7 8 9 10 11 | fonction sum (a: int, b: int) { / / Code } fonction sum (a: float, b: float) { / / Code } fonction sum (a: string, b: string, c: string) { / / Code } |
Choisir la bonne fonction à utiliser est, bien sûr, uniquement dictée par le «type» (et aussi le nombre) des paramètres passés à la fonction elle-même. Vous pouvez, cône de quelques lignes de code supplémentaires, émuler ce comportement, même dans des langues qui ne le supporte pas directement. Par exemple en PHP, vous pouvez créer une fonction comme ceci:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | / ** * Cette fonction se comporte différemment en fonction des paramètres d'entrée. * Dans cet exemple, on peut "comprendre" comment se comporter sur la base des analyses * Parmi les paramètres d'entrée et ensuite: * * - Récupérer même si les paramètres passés d'une manière différente * - La fonction d'exécuter du code différent basé sur les paramètres d'entrée * * * / $id_qualcosa = '' ) { get_qualcosa fonction ($ id_qualcosa ='') { func_num_args ( ) > 0 ) { // numero degli argomenti if ( func_num_args ()> 0) {/ / nombre d'arguments func_get_arg ( 0 ) ; // prendo il primo Arg $ = func_get_arg (0) / / prendre la première is_array ( $arg ) ) { // se il primo argomento è un array... if ( is_array ($ arg)) {/ / Si le premier argument est un tableau ... $arg [ 'id_qualcosa' ] ; // faccio qualcosa o recupero il parametro Args = $ $ Id_qualcosa ['id_qualcosa'], / / faire quelque chose ou de récupérer le paramètre } } } |
Cette technique peut être utile lorsque nous avons une fonction qui peut être appelé dans différents domaines. Par exemple, imaginez que vous avez une fonction qui extrait les informations d'une base d'un utilisateur. Cela pourrait prendre la forme:
1 2 3 4 5 6 7 8 9 10 11 12 13 | / ** * Obtenez les informations utilisateur via l'id * * ID id @ param $ de la base * / $id_user = '' ) { Fonction get_user_info ($ id_user ='') { func_num_args ( ) > 0 ) { // numero degli argomenti if ( func_num_args ()> 0) {/ / nombre d'arguments func_get_arg ( 0 ) ; // prendo il primo Arg $ = func_get_arg (0) / / prendre la première is_array ( $arg ) ) { // se il primo argomento è un array... if ( is_array ($ arg)) {/ / Si le premier argument est un tableau ... $arg [ 'id_user' ] ; // $arg === $_POST Args = $ $ Id_user ['id_user'] / / $ arg === $ _POST } } } |
Cette fonctionnalité peut être utilisée dans une bibliothèque ( mialib.php ) et a appelé d'autres fonctions PHP. Si nous utilisons des techniques Ajax ou forme simple, ce serait bien de réutiliser la même fonction sans avoir à construire un spécifiquement. Si nous avons donc un format qui nécessite l'aide d'un menu de select le choix de l'utilisateur:
1 2 3 4 5 6 7 8 9 | "post" action = "sample.php" > < formulaire method = "post" action = "sample.php"> "id_user" > < sélectionner name = "id_user"> "1" > Utente 1 < / option > < option de valeur = "1"> Utilisateur 1 </ option de > "2" > Utente 2 < / option > < option de valeur = "2"> Utilisateur 2 </ option de > "3" > Utente 3 < / option > < option de valeur = "3"> Utilisateur 3 </ option de > </ Select > "hidden" name = "comando" value = "get_user_info" / > < d'entrée de type = "hidden" name = "commande" value = "get_user_info" /> "submit" value = "Invia" / > < d'entrée type = "submit" value = "Soumettre" /> </ forme > |
Notre sample.php pourrait être:
1 2 3 4 | / / Inclure le fichier contenant mes fonctions ; include_once "mialib.php"; / / Appeler la fonction passant un tableau mon $ _POST 'echo ' . $_POST [ 'comando' ] . "( \$ _POST );" ) ; eval _POST ('echo'. $ ['commande']. "(\ $ _POST );"); |










Il n'y a aucun commentaire pour cet article
Laisser un commentaire