我在PHP中传递变量作为参考时遇到了问题。
我想在之后设置$grand_total
:
$data = array('title' => 'blabla', 'value' => &$grand_total);
// Set after
$grand_total += 50;
这没有问题,但是当我使用函数传递$grand_total
var时,我收到以下错误:
遇到PHP错误严重性:8192消息:呼叫时间 pass-by-reference已被弃用文件名: controllers / checkout.php行号:131
我正在传递这样的变量:
$data = array('title' => 'blabla', 'value' => price(&$grand_total));
// Set after
$grand_total += 50;
我必须使用price()
函数。
任何人都可以帮助我吗?
我很抱歉我的英语不好。
答案 0 :(得分:1)
这对你来说非常合适
$grand_total = 10;
function &price($value)
{
$value += 10;
return $value ;
}
$grand_total = price($grand_total);
$data = array('title' => 'blabla', 'value' =>$grand_total);
$grand_total += 50;
var_dump($grand_total)
输出
int 70
了解更多信息
http://us3.php.net/manual/en/language.references.php
http://us3.php.net/manual/en/language.references.pass.php
由于 :)
答案 1 :(得分:0)
没有这个功能有点困难。我们不知道在线“131”是什么
看看你的php.ini
allow_call_time_pass_reference = On
如果此参数设置为off,则其不起作用。但一般情况下,它在PHP 5中被弃用,用引用(“& $ grand_total”)调用时间函数。在没有引用的情况下调用函数或将函数中的引用分配给另一个变量,并使用变量而不是引用。