php - 将参数传递给函数

时间:2017-01-10 15:00:02

标签: php

我有简单的代码:

class A {
    public $var = 1;
    function inc() {$this->var++;}
}

function foo($a) {
    for($i = 0; $i < 10; $i++) {
        $a->inc();
    }
}

$a = new A();
foo($a);

$v = $a->var;
echo "var value is $v \n";

我希望打印的值为1但是我得到11。 PHP不应该通过copy-constructor将参数传递给函数吗?

1 个答案:

答案 0 :(得分:0)

您已经拥有$var=1并且每10次递增一次。这意味着你的for循环运行了10次,并且随着$this->var++class A inc method的增加而增加。因此,要获得结果,$var应该等于-9,否则您应该将for循环设置为单次运行,并将$var的值默认设置为0.