je le code suivant:PHP 7: Quel est le problème de passer une non-variable par référence et pourquoi un AVIS si la fonction est passée, mais une erreur FATALE si le tableau est passé?
$family = cis_resempty(wp_get_post_terms($post->ID,'family'),0);
Je reçois l'erreur suivante:
Notice: Only variables should be passed by reference in C:\xampp.....xxx.php on line 18
Si je fais ce qui suit:
$family = cis_resempty(array('a'),0);
-je obtenir même
Fatal error: Only variables can be passed by reference in C:\xampp...xxx.php on line 16
La fonction est cis_resempty comme celui-ci (mais son d'une bibliothèque):
function cis_resempty(&$var,$key) { ... }
Trouvé que si je retire le signe de référence &
dans la liste des paramètres de cis_resempty il n'y a aucune erreur.
Si je fais ceci:
$family = @cis_resempty(wp_get_post_terms($post->ID,'family'),0);
Il n'y a aucun avis et tout fonctionne - mais Netbeans dit:
Misuse of the error control operator
Mais si je fais ceci:
$family = @cis_resempty(array('a'),0);
La fatale erreur continue d'exister.
Pourquoi est-ce que je peux passer une fonction par référence et supprimer la notification avec l'opérateur de contrôle d'erreur mais si je passe un tableau j'obtiens une erreur fatale?
Pourquoi est-il mauvais de passer une variable non par référence?