我的PHP代码不适用于PHP 7.1或7.2

时间:2018-04-04 03:13:30

标签: php whmcs

我的php编码最新的php版本,原始代码:

<?php

function smarty_function_gravatar($params, &$smarty) {

    $email = (isset($params['email']) ? trim(strtolower($params['email'])) : '');
    $rating = (isset($params['rating']) ? $params['rating'] : 'R');
    $url = "https://www.gravatar.com/avatar/".md5($email) . "?r=".$rating;

    if(isset($params['default']))
        $url .= "&d=".urlencode($params['default']);
    if(isset($params['size']))
        $url .= "&s=".$params['size'];

    if(isset($params['assign'])) {
        $smarty->assign($params['assign'], $url);
        return;
    }

    return $url;
}

add_hook('ClientAreaPage', 1, 'smarty_function_gravatar');

从错误日志:

{main} {"exception":"[object] (ArgumentCountError(code: 0): Too few arguments to function smarty_function_gravatar(), 1 passed and exactly 2 expected at /home/myuser/public_html/includes/hooks/avatar.php:3)"} []

请帮助替换php 7.2的新代码

1 个答案:

答案 0 :(得分:1)

我只能建议以下内容,我之前从未使用过whmcs,但可能会引用global $smarty;变量。

变化

function smarty_function_gravatar($params, &$smarty) {

function smarty_function_gravatar($params){
global $smarty;