Maison >développement back-end >tutoriel php >Comment puis-je corriger l'erreur PHP 5.4 « Le passage par référence au moment de l'appel a été supprimé » ?

Comment puis-je corriger l'erreur PHP 5.4 « Le passage par référence au moment de l'appel a été supprimé » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 07:40:13302parcourir

How Can I Fix the PHP 5.4

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!

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