PHP代码从5.2升级到5.4

时间:2014-01-22 21:18:21

标签: php

我有一个用PHP 5.2编写的旧网站,但在升级PHP版本后,现在已经停止工作了。

这是我得到的错误:

PHP Fatal error:  Call-time pass-by-reference has been removed in /var/www/vhosts/crm/httpdocs/libs/formval.class.php on line 212, referer: http://crm/admin/index.php

来自formval.class.php的代码

            // Are there any functions to run?
        if ($functions != '') {

            // Put the functions into an array.
            $functionArray = explode(',', $functions);

            // Loop through and run the functions.
            for ($i = 0; $i < sizeof($functionArray); $i++) {

                $functionName = $functionArray[$i];

                switch ($functionName) {

                    case 'isNumber':
                        $callFunction = $this->isNumber($data, &$errorMsg);
                        break;

                    case 'isNumberND':
                        $callFunction = $this->isNumberND($data, &$errorMsg);
                        break;

                    case 'isNotZero':
                        $callFunction = $this->isNotZero($data, &$errorMsg);
                        break;

                    case 'isValidEmail':
                        $callFunction = $this->isValidEmail($data, &$errorMsg);
                        break;

                    case 'isValidDate':
                        $callFunction = $this->isValidDate($data, &$errorMsg);
                        break;

                    case 'isValidPassword':
                        $callFunction = $this->isValidPassword($data, &$errorMsg);
                        break;

                    default:
                        $callFunction = TRUE;

                }

这是第212行:

$callFunction = $this->isNumber($data, &$errorMsg);

因为它在Plesk 11.5上运行,所以它不允许我用apache模块安装5.2,只安装CGI或FastCGI,但是不能让这个站点运行。 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

问题是你不能通过引用来调用,使用

$callFunction = $this->isNumber($data, $errorMsg);

而不是

$callFunction = $this->isNumber($data, &$errorMsg);

此外,您还必须从

更改isNumber函数声明
public function isNumber($data, $errorMsg)

public function isNumber($data, &$errorMsg)