web-dev-qa-db-fra.com

PHP7.2 Remarque: seules les variables doivent être passées par référence dans

J'ai reçu cet avis lorsque j'ai changé un site Web Joomla de PHP 5.6 à PHP7.2

"Seules les variables doivent être transmises par référence dans ... à la ligne 116" La deuxième ligne est la ligne 116

    if($this->isViewExcluded($article)) {
        if($this->isArticleExcluded(JRequest::getInt('id', 0))) {
            $this->createButton($article);

Idem pour la ligne 257 La troisième ligne en dessous

function getArticleLink(&$article)
{
        $u =& JFactory::getURI();
        return $u->toString();
}

J'ai lu Remplacer JRequest (obsolète) par JInput quand j'ai reçu l'avis et essayé beaucoup avec la solution donnée sur cette page (et d'autres pages), mais malheureusement pas de succès.

Quelqu'un a-t-il une solution pour que cela fonctionne en PHP7.2?

3
Joflx

Parce que l'argument de fonction contient un & au début, il faut passer une variable par référence plutôt que de référencer directement une valeur d'objet.

Vous devrez donc remplacer ceci:

if ($this->isArticleExcluded(JRequest::getInt('id', 0))) {

}

avec ça:

$id = JFactory::getApplication()->input->get('id');

if ($this->isArticleExcluded($id)) {

}

Vous pouvez également supprimer le & avant JFactory

2
Lodder