(1)我想知道在PHP中按值调用和引用调用之间有什么区别.
PHP是按值调用还是按引用调用?
例如:-
$a = 'name'; $$a = "Paul"; echo $name; output is Paul
如上所示,你在PHP上用$$表示什么.
$$a = b;在PHP中表示“获取$a的值,并将名称为该值的变量设置为等于b”.
换一种说法:
$foo = "bar"; $$foo = "baz"; echo $bar; // outputs 'baz'
但是,看看PHP symbol reference.
对于按值/引用的调用 – 两者之间的主要区别在于您是否能够修改用于调用该函数的原始项.看到:
function increment_value($y) { $y++; echo $y; } function increment_reference(&$y) { $y++; echo $y; } $x = 1; increment_value($x); // prints '2' echo $x; // prints '1' increment_reference($x); // prints '2' echo $x; // prints '2'
注意$x的值不是由increment_value()改变的,而是由increment_reference()改变的.
如此处所示,是否使用call-by-value或call-by-reference取决于被调用函数的定义;声明自己的函数时的默认值是按值调用(但您可以通过& sigil指定call-by-reference).