Les références en PHP peuvent sembler assez déroutantes au développeur C/C++. S'agit-il de pointeurs ? La documentation de PHP prétend que non, mais la lecture des commentaires qui y ont été annexés laisse sur une impression bien moins catégorique.
En fait, tout dépend d'où l'on se place : veut-on chercher à comprendre comment les références fonctionnent, ou veut-on simplement déjà parvenir à décrypter le code où il en figure ?
Quelle que soit la manière dont les références fonctionnent réellement, ce qui sème le trouve dans l'esprit du développeur C/C++, c'est qu'il semble que ces références ne sont pas des pointeurs, du fait de la syntaxe.
En effet, soit le code C++ suivant :
int i, *p; i = 0; p = &i; std::cout << *p; // On écrit *p et non p (comme on a écrit i)
Le code équivalent en PHP serait :
$i = 0; $p = &$i; echo ($p); // Surprise! on écrit $p comme on a écrit $i
Alors, comment le développeur C/C++ doit-il décrypter les références aux références dans le code PHP ? L'objet de cet article est d'éclairer sa lanterne. Plus généralement, tous ceux qui souhaitent utiliser des références en PHP devraient trouver un intérêt à le lire - tout particulièrement pour clarifier la relation critique entre référence et
unset ()
.
Click here to read this article in english.
Continuer la lecture de "Les références en PHP sont-elles des pointeurs en C/C++ ?"