Home
Accueil
Downloads
Téléchargements
Forums
Forums
Your Account
Votre compte
Menu
· Accueil ·

· Communication ·
  · Forums
  · Messages privés
  · Contactez nous
  · Recommendez nous
  · Sondages
  · Les projets

· Nouvelles ·Stats
  · Sujets
  · Ecrire un article
  · Articles archivés
  · Articles RSS
  · Lettre de sécurité
  · Archive de lettres

· Téléchargements ·
  · Accueil
  · Nouveautés
  · Mises à jour
  · Thêmes

· Outils ·
  · Outils divers
  · Convertisseur de temps
  · Table de caractères
  · Générateur de boutons
  · Compresseur Javascript

· Documentation ·
  · Wiki
  · Questions/Réponses
  · Documents
  · Manuel PHP-Nuke
  · Manuel PHP
  · Manuel PEAR
  · Encyclopédies

· Liens ·
  · Nos liens
  · Nos fluxs RSS
  · Partenaires
  · Votre publicité
  · Sitemap
  · Mes bannières

· Infos ·
  · Rechercher
  · Votre compte
  · Liste des membres
  · Carte des membres
  · Top

· Divers ·
  · Météo
  · Galeries
  · Statistiques Phpnuke
  · MS Analysis


Passage par référence

Passage par référence

Vous pouvez passer des variables par référence, de manière à ce que la fonction modifie ses arguments. La syntaxe est la suivante :

Exemple 21-8. Passage par référence

<?php
function foo(&$var) {
  
$var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>
Notez qu'il n'y a pas de signe de référence dans l'appel de la fonction, uniquement sur sa définition. La définition de la fonction est suffisante pour passer correctement des arguments par référence. Dans les versions récentes de PHP, vous devriez recevoir une alerte disant que "Call-time pass-by-reference" est obsolète lorsque vous utilisez un & dans foo(&$a);.

Les objets suivants peuvent être passés par référence :

  • Une variable, i.e. foo($a)

  • Un nouvel objet, i.e. foo(new foobar())

  • Une référence, retournée par une fonction :

    Exemple 21-9. Retour d'une référence par une fonction

    <?php
    function &bar() {
    $a = 5;
    return
    $a;
    }
    foo(bar());
    ?>
    Voir aussi des détails dans retourner des références.

Toutes les autres expressions ne doivent pas être passées par référence, car le résultat sera indéfini. Par exemple, les passages par référence suivants sont invalides :

Exemple 21-10. Passage par référence invalides

<?php
function bar() // Notez l'absence de &
{
   
$a = 5;
   return
$a;
}
foo(bar());    // Produit une erreur fatale depuis PHP 5.0.5

foo($a = 5);    // Expression, pas une variable
foo(5);         // Produit une erreur fatale
?>
Ces fonctionnalités sont valables à partir de PHP 4.0.4.


Manuel PHP pour PHP-Nuke © www.stefvar.com
Syndiquez notre contenu RSS, Atom, etc..
PHP-Nuke © 2007Reproduction interdite sans autorisation de ma part www.stefvar.com Copyright © 2008Thème iCGstation
Site français de la communauté PragmaMx