Ne vous vous êtes jamais demandé comment faire pour modifier et retourner dans une fonction plusieurs variables? En effet le return en PHP provoque l'arrêt de l'exécution du script de la fonction. La solution les pointeurs.
Cependant attention, je préviens tout de suite, cette façon de faire est là non pas pour pondre des fonctions de 100 lignes et qui renvoient 10 variables mais bien pour dépanner lorsque le travail de segmentation du code touche à sa fin et que vous ne voulez pas renvoyer un tableau pour 2 variables qui, mise à part le contexte, n'ont pas de lien.
Donc voici son fonctionnement (la pertinence de l'exemple peut être discutable c'est juste pour la bonne cause):
function getInfo (&$pseudo, &$nom){
$pseudo = 'Sam';
$nom = 'Samuel';
}
$pseudo = 'pas de pseudo';
$nom = 'pas de nom';
getInfo($pseudo, $nom);
echo $pseudo // affiche Sam
echo $nom // affiche Samuel
Et voilà vive les pointeurs ^^
Articles similaires
- PHP 6 & co.
- Livre blanc : industrialisation de PHP
- Installer Magento en français sur WAMP
- CakePHP : validation Ajax
- Commentez vos fichiers source automatiquement grâce aux keywords Subversion
- Lancez vos sites sur orbite avec Fredistrano 1.0
- CakePHP : sauts de ligne et maux de tête
- PHP, DOM et charset
- CakePHP 1.2 RC1
- Projets en cours, le point.




tu tires ou tu pointes ?
si je peux juste me permettre une remarque sur l'utilisation du mot "pointeur"
le cas dont tu parles est l'utilisation d'un passage par référence (au contraire du passage par défaut qui est celui par valeur)
le mot "pointeur" est plutôt utilisé quand on manipule une donnée (/ une variable) dont la valeur est une adresse mémoire qui pointe donc vers une zone mémoire
Dia
Abus de langage
Effectivement c'est un peu un abus de langage de dire que c'est des "pointeurs", mais bon le passage par référence c'est un peu des pointeurs quand même ^-^.
Pointeur
Un pointeur est en programmation une variable contenant une adresse mémoire.
C'est en fait un "GROS" abus
C'est en fait un "GROS" abus de langage : les références ne sont absolument pas des pointeurs. Il est vrai que leur manipulation peuvent se ressembler mais leur fonctionnement n'est pas du tout la même.
Les pointeurs sont bien plus puissants que les références car on touche directement à la zone mémoire allouée pour stocker la valeur d'une variable déclarée, ce qui est source de nombreux bugs lorsqu'on y prend pas garde (exemple : modification de la valeur stockée avant allocation de la zone mémoire, pour la plus fréquente).
Les références sont seulement une autre "référence" à une variable déclarée (et non à une zone mémoire), comme si on donnait un autre nom à une variable (pour faire simple, mais c'est plus compliqué encore).
La différence peut paraître fine, et d'ailleurs c'est toujours difficile de l'expliquer, mais UNE REFERENCE ET UN POINTEUR SONT DEUX CHOSES DISTINCTES.
Et de toute façon, les pointeurs n'existent pas en PHP car ses spécificités (portée des variables, typage très large des variables) font des pointeurs des outils presque superflus.