(1)我想知道php
中按值调用和引用调用之间的区别。 PHP是按值调用还是按引用调用?
(2)而且我想知道你的意思是由$$登录php
例如: -
$a = 'name';
$$a = "Paul";
echo $name;
output is Paul
如上例所示,PHP在PHP上的含义是什么。
答案 0 :(得分:13)
$$a = b;
表示“取$a
的值,并将 name 的值变为等于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取决于被调用函数的定义;声明自己的函数时的默认值是按值调用(但您可以通过{{1}} sigil指定按引用调用)。
答案 1 :(得分:7)
让我们定义一个函数:
function f($a) {
$a++;
echo "inside function: " . $a;
}
现在让我们尝试按值调用它(通常我们这样做):
$x = 1;
f($x);
echo "outside function: " . $x;
//inside function: 2
//outside function: 1
现在让我们重新定义函数以通过引用传递变量:
function f(&$a) {
$a++;
echo "inside function: " . $a;
}
再次调用它。
$x = 1;
f($x);
echo "outside function: " . $x;
//inside function: 2
//outside function: 2
您可以通过引用函数传递变量,以便函数可以修改变量。 更多信息here。
答案 2 :(得分:0)
这意味着$($ a),因此它与$ name相同(因为$ a ='name')。这里有更多解释What does $$ (dollar dollar or double dollar) mean in PHP?
答案 3 :(得分:0)
按值调用表示将值直接传递给函数。被调用函数使用局部变量中的值;对它的任何更改都不会影响源变量。
通过引用调用意味着传递存储实际值的变量的地址。被调用函数使用存储在传递地址中的值;对它的任何更改都会影响源变量。
答案 4 :(得分:0)
按值调用:直接传递变量值,不会影响任何全局变量。
按引用调用:传递变量的地址会影响可变性 e。