*   >> Lecture Éducation Articles >> tech >> conception de sites Web

Php - passer par référence, A Different Approach

Alors avant de sauter juste en références de passage à des fonctions, permet de revoir l'approche beaucoup plus commune, juste pour fournir un petit rappel pour ceux qui sont hors de la pratique, ou ceux qui sont élargir simplement maintenant dans les royaumes de fonctions

Une fonction rencontré en php regarde le plus souvent que l'un des deux exemples suivants:.


 //pas returnfunction sayHi () {echo 'Bonjour moi, rencontrer le vrai moi! ';} sayHi (); //Outputs notre texte 

Ceci est une fonction qui va faire quelque chose comme texte de sortie à l'écran, ou de jeter une erreur, ou tout ce que vous voulez qu'il fasse

 //returnfunction growOld ($ âge. ) {$ age = $ age + 1; return $ l'âge;} $ myAge = 21; $ myAge = growOld ($ myAge); echo myAge $; //22 

Nous pouvons voir que cette fonction prend une variable, probablement un âge, et incrémente par un, avant de retourner la nouvelle valeur à l'utilisateur.

Un peu inutile, mais il illustre notre point.

Maintenant, remarquez dans le deuxième exemple, nous avons un paramètre de fonction de l'âge $. Lorsque cette fonction est appelée, vous êtes juste envoyer une valeur à elle, que ce soit la valeur actuelle d'une variable, ou, juste un nombre, comme «15». Ceci est appelé "passage par valeur", et est le type de la fonction la plus commune, et de loin.

Maintenant, si nous voulons effectuer certaines actions sur notre variable réelle, et pas seulement sa valeur actuelle? Pour penser d'une manière différente, si nous voulons changer ce qui est dans notre conteneur réel, au lieu d'une copie de celui-ci? Prenons l'exemple suivant

 //ajouter un numéro à notre arrayfunction addAFive ($ array) {$ array [] = 5;}. $ MyArray = array ('1', '2', '3', '4'); addAFive ($ myArray); print_r ($ myArray); //Quel est le résultat? 

La réponse peut ne pas être ce que vous pensez.

Depuis que nous avons seulement passé une copie de notre monTableau $ à la fonction, seule la copie a été donné un '5'. Le tableau original contient encore seulement le nombre 1,2,3 et 4. Donc, la question est, comment pouvons-nous envoyer notre produit que dans la fonction au lieu d'une copie? La réponse est un simple «&». Cela est vrai, l'humble esperluette.

Si nous préfacer notre nom de variable dans la liste des paramètres de notre fonction avec cela, alors la fonction saura opérer sur l'objet réel passé, pas une copie de celui-ci! Il est vraiment cool, check it out:

 //ajouter un nom à n

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.