Résolution du problème de passage par référence des heures d'appel de PHP 5.4
L'introduction de PHP 5.4 a marqué la suppression du passage des heures d'appel. par référence, ce qui entraîne l'erreur redoutée "Le passage par référence au moment de l'appel a été supprimé". Cette erreur se produit lorsque des variables sont transmises à des fonctions en tant que références dans du code existant.
Résolution facile ou réécriture complète ?
Il n'existe pas de solution simple à ce problème. Le problème vient de la façon dont les références sont déclarées dans les définitions de fonctions, et non dans les appels de fonction. La documentation de PHP indique que "Il n'y a pas de signe de référence sur un appel de fonction - uniquement sur les définitions de fonction."
Réécrire le code hérité
Depuis que PHP a commencé à émettre des erreurs de dépréciation pour l'appel -time pass-by-reference dans la version 5.3, il est fortement recommandé de réécrire le code existant pour éviter d'éventuels problèmes de compatibilité dans le futur.
Exemple de réécriture
Au lieu de :
// Wrong way! myFunc(&$arg); // Deprecated pass-by-reference argument function myFunc($arg) { }
Utiliser :
// Right way! myFunc($arg); // pass-by-value argument function myFunc(&$arg) { }
En déclarant des références dans la fonction définitions, vous vous assurez que PHP transmettra les arguments par référence sans avoir besoin d'une syntaxe obsolète dans les appels de fonction.
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!