Error passage PHP 7.2 sur une V10

Bonjour,

je viens d efaire la migration d’un Doli 7 en doli 10 sans soucis, je souhaitais ensuite passser en version PHP 7.2 ou 7.3 chez OVH avec cette nouvelle verson mais voila…un bel ecran erreur 500.

Aprés recherche, l’erreur est la suivante:
Parse error : syntax error, unexpected ‹ -> › (T_OBJECT_OPERATOR) in /www/espacepro/htdocs/core/lib/functions.lib.php(6828) : eval()'d code on line 1

si je commande ces lignes tout fonctionne bien :
// else
// {
// //if ($hideerrors) @eval($s);
// //else eval($s);
// eval($s);
// }

Mais cela est quand même cavalier sans comprendre.

Pouvez-vous m’orienter ?

/**

  • Replace eval function to add more security.

  • This function is called by verifCond() or trans() and transnoentitiesnoconv().

  • @param string $s String to evaluate

  • @param int $returnvalue 0=No return (used to execute eval($a=something)). 1=Value of eval is returned (used to eval($something)).

  • @param int $hideerrors 1=Hide errors

  • @return mixed Nothing or return of eval
    */
    function dol_eval($s, $returnvalue = 0, $hideerrors = 1)
    {
    // Only global variables can be changed by eval function and returned to caller
    global $db, $langs, $user, $conf, $website, $websitepage;
    global $action, $mainmenu, $leftmenu;
    global $rights;
    global $object;
    global $mysoc;

    global $obj; // To get $obj used into list when dol_eval is used for computed fields and $obj is not yet $object
    global $soc; // For backward compatibility

    //print $s."
    \n";
    if ($returnvalue)
    {
    if ($hideerrors) return @eval(‹ return ‹ .$s. ›; ›);
    else return eval(‹ return ‹ .$s. ›; ›);
    }
    // else
    // {
    // //if ($hideerrors) @eval($s);
    // //else eval($s);
    // eval($s);
    // }
    }

Bonjour,

Généralement cette erreur vient d’un extrafield qui est mal renseigné.