Maison >développement back-end >tutoriel php >Pourquoi est-ce que je reçois l'avertissement « Normes strictes : seules les variables doivent être transmises par référence » en PHP ?

Pourquoi est-ce que je reçois l'avertissement « Normes strictes : seules les variables doivent être transmises par référence » en PHP ?

DDD
DDDoriginal
2024-12-22 12:47:28719parcourir

Why Am I Getting the

Comprendre l'avertissement des normes strictes : seules les variables doivent être transmises par référence

Lorsque vous rencontrez les « normes strictes : seules les variables doivent être transmises par référence référence », il est essentiel de comprendre la cause sous-jacente et comment la résoudre de manière appropriée. Cet avertissement se produit lorsqu'une expression est passée par référence plutôt que par une variable, comme l'exigent des normes strictes.

Dans l'extrait de code donné :

$el = array_shift($instance->find(..))

Ce code déclenche l'avertissement car $instance- >find(...) est une expression qui renvoie un tableau, pas une variable. Ce comportement n'est pas intuitif, car on pourrait s'attendre à ce qu'une méthode renvoyant un tableau soit gérée comme une variable.

Pour résoudre cette erreur en mode strict, envisagez les options suivantes :

  • Modifier la signature de la méthode pour supprimer l'utilisation d'une référence :
function test_arr($a) {
    var_dump($a);
}
  • Si vous modifiez la la signature de la méthode n'est pas réalisable, vous pouvez introduire une variable intermédiaire :
$inter = get_arr();
$el = array_shift($inter);

En comprenant la nature de l'avertissement et en appliquant ces solutions, vous pouvez résoudre le problème efficacement et respecter des normes strictes.

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