[英]PHP Code upgrade from 5.2 to 5.4
我有一个用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,但都不能使该站点运行。 有任何想法吗?
问题是您不能通过引用来调用,使用
$callFunction = $this->isNumber($data, $errorMsg);
代替
$callFunction = $this->isNumber($data, &$errorMsg);
另外,您还必须更改isNumber函数声明,从
public function isNumber($data, $errorMsg)
至
public function isNumber($data, &$errorMsg)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.