est-ce pas incroyable? Juste en ajoutant l'esperluette au nom de la variable, la fonction sait maintenant à travailler sur la variable réelle au lieu d'une copie qui sera supprimé à la fin du cycle de vie de la fonction.
Évidemment, cet exemple est purement que - un exemple, pas très utile, mais, si vous exécutez plusieurs actions sur un seul article (en particulier un tableau), il est beaucoup plus facile, et plus propre, de passer l'élément que l'objet réel Un avertissement cependant, ne pas essayer de passer une référence à une fonction qui ne s'y attend pas, comme il va produire une «passe de temps d'appel par référence 'erreur: Le problème ici (alerte nerd) est que la réalité et me donner les moyens de «adresse» d'une variable à manipuler. Donc, quand nous l'appelons le bon sens (fonction func (& $ var) {}), la fonction sait qu'il va obtenir une adresse en mémoire, et sait manipuler l'objet à cet endroit. Si nous essayons d'utiliser l'esperluette lorsque vous appelez une fonction, la façon incorrecte (func (& $ myVar);), nous passons l'adresse mémoire réelle de la variable à la fonction, qui attend un tableau, pas une adresse de mémoire! Ainsi, alors un peu confus, il est assez astucieux et une compétence très utile d'avoir sous votre ceinture de programmation! Voilà tout pour le moment! //Ceci est pas allowedfunction someUnsuspectingFunction ($ array) //cette attend une copie {$ array [] = '5';} $ myArray = array ('1', '2', '3', '4'); someUnsuspectingFunction (& $ monTableau); //Cela va jeter un exceptionprint_r ($ myArray);
Web Design Biggest Mistakes