PHP est un langage de script côté serveur largement utilisé dans le développement Web. Dans PHP, il existe deux façons de passer les paramètres: valeur par valeur et référence. Cet article se concentrera sur le mécanisme de transfert de valeur dans PHP et aide les lecteurs à maîtriser ce concept à travers des exemples de code spécifiques.
Le passage de la valeur fait référence au passage d'une copie des paramètres externes de la fonction à une variable à l'intérieur de la fonction, donc modifier les paramètres à l'intérieur de la fonction n'affectera pas la variable externe. Le passage de la valeur est souvent utilisé dans les types de données de base (tels que les entiers, les nombres flottants, les chaînes, etc.). Voici un exemple simple:
<?php
function addNumber($num) {
$num = $num + 10;
return $num;
}
$number = 5;
$newNumber = addNumber($number);
echo "Valeur d'origine:" . $number . "<br>"; // Sortir 5
echo "Valeur modifiée:" . $newNumber; // Sortir 15
?>
Dans l'exemple de code ci-dessus, la fonction addNumber reçoit un paramètre $ num et renvoie la valeur une fois qu'il est ajouté 10. Cependant, la valeur du nombre de variables externes n'est pas affectée par la modification interne de la fonction.
Bien que les tableaux et les objets soient généralement passés dans des références en PHP, ils suivent toujours le mécanisme de valeur passant lorsqu'ils sont passés, et le comportement spécifique peut être différent de ce à quoi nous nous attendions. Voici un exemple de valeur de la valeur de l'objet:
<?php
class Person {
public $name;
}
function changeName($obj) {
$obj->name = 'Lucy';
}
$person = new Person();
$person->name = 'John';
changeName($person);
echo "Nom d'origine:" . $person->name . "<br>"; // Sortir John
echo "Nom modifié:" . $person->name; // Sortir Lucy
?>
Dans cet exemple, nous constatons que lorsque la personne de l'objet $ est transmise à la fonction ChangeName, la fonction modifie sa valeur de propriété en interne, mais en raison de la nature de la valeur, la modification est limitée à la fonction en interne.
Pour les tableaux, des situations similaires s'appliquent. Voici un exemple de passage de valeurs de tableau:
<?php
function changeElement($arr) {
$arr[0] = 100;
}
$array = [1, 2, 3];
changeElement($array);
echo "Tableau d'origine:";
print_r($array); // Sortir [1, 2, 3]
?>
Comme indiqué ci-dessus, bien que l'élément de tableau soit modifié, la valeur du tableau externe n'est pas affectée.
Grâce à cet article, nous avons une compréhension plus approfondie du mécanisme de transfert de valeur dans PHP. Pour les types de données de base, PHP transmet une copie de la valeur, tandis que pour les types de données composites (tels que les tableaux et les objets), même s'ils agissent comme des passes de référence lorsqu'ils sont passés, la valeur passe demeure en fonctionnement réel. Par conséquent, les développeurs doivent choisir la méthode de livraison de paramètres appropriée en fonction des différents besoins lors de la rédaction de code pour garantir l'exactitude du programme.