Maison  >  Article  >  développement back-end  >  Référence et retour des fonctions php

Référence et retour des fonctions php

蓝冰凌z
蓝冰凌zoriginal
2018-05-04 11:49:452166parcourir

La référence de la fonction PHP est la même que la référence de la variable en PHP, nous allons donc aujourd'hui examiner quelques exemples de retours de fonctions. Les amis dans le besoin peuvent s'y référer.

Regardez d'abord le code :

<?php
function &test() {
    static $b=0;//申明一个静态变量
    $b=$b+1;
    echo $b;
    return $b;
}
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
?>

Expliquez ci-dessous :

De cette façon $a=test(); En fait, ce n'est pas un retour de référence d'une fonction. Ce n'est pas différent d'un appel de fonction ordinaire. Quant à la raison : il s'agit d'une réglementation PHP qui stipule que ce qui est obtenu via $a=&test(); un retour de référence d'une fonction. Quant à savoir ce qu'est une référence ? Qu'en est-il du retour (le manuel PHP dit : le retour de référence est utilisé lorsque vous souhaitez utiliser une fonction pour trouver à quelle variable une référence doit être liée.) Cette absurdité m'a fait comprendre. incapable de le comprendre pendant longtemps.

En utilisant l'exemple ci-dessus pour expliquer, l'appel d'une fonction dans la méthode

$a=test() attribue uniquement la valeur de la fonction à $a, et toute modification apportée à $a ne le sera pas. Cela affecte $b dans la fonction, et lorsque la fonction est appelée via $a=&test(), sa fonction est de pointer l'adresse mémoire de la variable $b en retour $b et l'adresse mémoire de la variable $a vers le même endroit. , ce qui produit un effet équivalent à "$a=&$b;" Donc changer la valeur de $a change également la valeur de $b, donc après avoir exécuté

$a=&test();
$a=5;

, $b Le la valeur passe à 5.

Les variables statiques sont utilisées ici pour permettre à tout le monde de comprendre le retour de référence de la fonction. En fait, le retour de référence de la fonction est principalement utilisé dans les objets.

Vous trouverez ci-joint un exemple PHP officiel :

L'appel d'une fonction à l'aide de $a=test() attribue uniquement la valeur de la fonction à $a. Toute modification apportée à $a n'affectera pas $b dans la fonction. L'appel d'une fonction à l'aide de $a=&test(). Eh bien, sa fonction est de pointer l'adresse mémoire de la variable $b en retour $b et l'adresse mémoire de la variable $a au même endroit, ce qui produit un effet équivalent à "$a=&$b;" la valeur de $a modifie également la valeur de $b, donc après avoir exécuté

$a=&test();
$a=5;

, la valeur de $b devient 5.

Les variables statiques sont utilisées ici pour permettre à tout le monde de comprendre le retour de référence de la fonction. En fait, le retour de référence de la fonction est principalement utilisé dans les objets.

Vous trouverez ci-joint un exemple PHP officiel :

//This is the way how we use pointer to access variable inside the class.
<?php
class talker{
    private $data = &#39;Hi&#39;;
    public function & get(){
        return $this->data;
    }
    public function out(){
        echo $this->data;
    }  
}
$aa = new talker();
$d = &$aa->get();
$aa->out();
$d = 'How';
$aa->out();
$d = 'Are';
$aa->out();
$d = 'You';
$aa->out();
?>
//the output is "HiHowAreYou"

Je pense qu'après avoir lu le cas dans cet article, vous maîtrisez la méthode de référence des fonctions. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP !

Articles associés :

Paramètres de référence et nombre de paramètres de la fonction php

PHP - Function_Study Notes Références aux fonctions php fonction de retard php fonction de tri php

Analyse approfondie du principe d'exécution de php (2) : compilation de fonctions fonction de cryptage php référence de la fonction php fonction de retard php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn