Maison  >  Article  >  développement back-end  >  Le tableau php est-il passé par valeur ou par référence ?

Le tableau php est-il passé par valeur ou par référence ?

青灯夜游
青灯夜游original
2023-01-07 17:23:193381parcourir

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.

Le tableau php est-il passé par valeur ou par référence ?

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(
    'name' => 'corn',
    'age' => '24',
);
var_dump($arr);
test_arr($arr);
function test_arr($arr){
    $arr['name'] = 'qqyumidi';
}
var_dump($arr); 
?>

Le tableau php est-il passé par valeur ou par référence ?

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('corn', '24');
test_arr(arr);
function test_arr(arr){
    arr[0] = 'qqyumidi';
}
console.log(arr);  //result:["qqyumidi", "24"]

Le tableau php est-il passé par valeur ou par référence ?

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
?>

Le tableau php est-il passé par valeur ou par référence ?

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!

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