La méthode de passage des paramètres PHP a les effets suivants sur l'injection de dépendance de fonction (FDI) : lors du passage par valeur, la fonction ne peut pas modifier la variable d'origine et le passage par référence permet à la fonction de modifier la variable d'origine et prend en charge ; FDI mais doit être utilisé avec prudence ; le passage par valeur et return permet à la fonction de renvoyer une nouvelle variable contenant la variable passée, prend en charge FDI et est plus sécurisé. L'impact de la méthode de passage des paramètres de la fonction PHP sur l'injection de dépendances de fonction Une copie de la valeur de la variable est transmise à la fonction.
Passage par référence :
Transmettez l'adresse de la variable directement à la fonction, et la fonction peut modifier la valeur de la variable d'origine.Pass et retour par valeur :
La fonction renvoie une nouvelle variable contenant la variable passée, qui peut être obtenue de l'extérieur de la fonction.Injection de dépendances fonctionnelles
Pour implémenter FDI, la fonction doit être implémentée en renvoyant une nouvelle variable contenant la variable transmise.
Pass by referencePass by référence permet à une fonction de modifier la variable d'origine, prenant ainsi en charge le FDI. Cependant, les paramètres de référence doivent être utilisés avec prudence car ils augmentent les effets secondaires potentiels et réduisent la flexibilité du code.
Pass and return by value
Exemple pratique : connexion à la base de données
function get_connection() { $conn = new mysqli('localhost', 'user', 'password', 'database'); return $conn; }
function get_connection_config(array $config) { $conn = new mysqli($config['host'], $config['user'], $config['password'], $config['database']); return $conn; }
Nous pouvons maintenant définir la configuration de connexion à la base de données en externe et la transmettre à la fonction :
$config = ['host' => 'newhost', 'user' => 'newuser', ...]; $conn = get_connection_config($config);
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!