IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Syntaxe entre php7 ezt php 7.2 entrainant des warnings [PHP 7]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai Avatar de gondieres
    Homme Profil pro
    Gestionnaire sites web personnels
    Inscrit en
    Juin 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire sites web personnels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2018
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Syntaxe entre php7 ezt php 7.2 entrainant des warnings
    Bonjour.

    Bonne et heureuse année à tous et à toutes. Que les grands codeurs veillent sur vous

    Mon hébergeur 1&1 me demande de passer sous php 7.1 ou 7.2 et une ligne de script (d'un template pour joomla) pose souci.
    Voici l'erreur générée:

    Warning:
    Parameter 2 to modChrome_artarticle() expected to be a reference, value given in /homepages/17/d140664202/htdocs/clickandbuilds/Joomla/MyCMS6/templates/janvier_15_2015_33/html/modules.php on line 39

    Warning:
    Parameter 3 to modChrome_artarticle() expected to be a reference, value given in /homepages/17/d140664202/htdocs/clickandbuilds/Joomla/MyCMS6/templates/janvier_15_2015_33/html/modules.php on line 39
    J'ai mis le fichier modules.php incriminé en pièce jointe.
    Merci pour vos conseils.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Les paramètres de call_user_func() sont toujours passés par valeur et non par référence et ce, même si la fonction est déclarée avec des paramètres par référence.
    La solution est d'utiliser à la place call_user_func_array() comme stipuler dans le manuel PHP. Ce qui donne (dans la fonction modChrome_artstyle):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call_user_func_array($styles[$style], [$module, &$params, &$attribs]);
    à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call_user_func($styles[$style], $module, $params, $attribs);
    (Il semble à lire les autres fonctions que $params soit systématiquement un objet, donc à la limite il ne serait pas utile de s'acharner à vouloir le passer par référence, car dans ce cas c'est automatique: tu peux tenter le coup en enlevant tous les & devant les $params).

    À noter que le warning qui a été émis existe depuis la version 5.3 de PHP, donc tu ne le dois pas au changement de version, mais à la politique d'affichage des erreurs/warnings/notices.

  3. #3
    Membre à l'essai Avatar de gondieres
    Homme Profil pro
    Gestionnaire sites web personnels
    Inscrit en
    Juin 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire sites web personnels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2018
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Merci pour la réponde rapide et la solution parfaite. Je note également le conseil pour $params.
    Pour les warnings, je ne sais expliquer, sous php 5.6 et 7.0, ils ne s'affichent pas. Dès que je passe à 7.1 ou 7.2, ils apparaissent. Mais ce n'est pas grave, l'affichage est clean désormais.
    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Syntaxe entre php et javascript
    Par benhsaien dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/10/2011, 09h42
  2. Réponses: 0
    Dernier message: 27/06/2008, 13h02
  3. [PHP-JS] Question sur la syntaxe entre PHP et HTML
    Par Diabless6 dans le forum Langage
    Réponses: 8
    Dernier message: 13/04/2007, 13h08
  4. [Système] Pont entre C++ et PHP
    Par icetechnik dans le forum Langage
    Réponses: 4
    Dernier message: 24/12/2005, 13h03
  5. Probleme de variable entre SQL et Php
    Par copin dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/06/2005, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo