Maison > Article > développement back-end > Le tableau php est-il passé par valeur ou par référence ?
Les tableaux PHP sont transmis par valeur. Le transfert de tableau PHP est un transfert de valeur ; lors de l'appel d'une fonction, l'attribution du tableau PHP comme paramètre réel au paramètre formel et sa modification dans la fonction n'affecteront pas le tableau lui-même, indiquant que le transfert dans ce processus est un transfert de valeur, et le La variable tableau ne pointe pas vers une référence à ce tableau lui-même.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8, ordinateur DELL G3
Les tableaux PHP sont passés par valeur
Le passage de tableaux en PHP est un passage de valeur plutôt qu'un passage de référence .
Lors de l'appel d'une fonction, attribuez le tableau PHP en tant que paramètre réel au paramètre formel, et sa modification dans la fonction n'affectera pas le tableau lui-même.
Expliquez que le transfert dans ce processus se fait par valeur. La variable tableau n'est pas une référence au tableau lui-même. Le tableau PHP lui-même existe sous la forme d'une valeur et le paramètre formel est une copie du tableau.
C'est très différent de certains autres langages (comme le c, le Js, etc.), donc ça vaut la peine de le noter !
L'exemple est le suivant :
<?php header("Content-type:text/html;charset=utf-8"); $arr = array( &#39;name&#39; => &#39;corn&#39;, &#39;age&#39; => &#39;24&#39;, ); var_dump($arr); test_arr($arr); function test_arr($arr){ $arr[&#39;name&#39;] = &#39;qqyumidi&#39;; } var_dump($arr); ?>
Vous pouvez voir que même si la valeur est réaffectée, cela n'affecte pas le tableau d'origine lui-même. Le code
js est le suivant :
var arr = new Array(&#39;corn&#39;, &#39;24&#39;); test_arr(arr); function test_arr(arr){ arr[0] = &#39;qqyumidi&#39;; } console.log(arr); //result:["qqyumidi", "24"]
Si vous devez utiliser l'effet de transfert de référence pour le transfert de valeur en PHP, vous pouvez ajouter le caractère d'adresse &
devant le paramètre formel.
<?php header("Content-type:text/html;charset=utf-8"); $aa = 100; echo "原变量值:".$aa; test_vars($aa); function test_vars(&$aa){ $aa = 200; } echo "<br>修好后:".$aa; //result: 200 ?>
Explication :
En PHP, la plupart des types de variables, tels que les chaînes, les entiers, les virgules flottantes, les tableaux, etc. sont des types valeur, tandis que les classes et les objets sont des types de référence, vous devez payer. attention à cela.
Apprentissage recommandé : "Tutoriel vidéo 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!