PHP删除";参考资料;从一个变量。
我有下面的代码。我想将$b更改为与值一起再次使用。如果我这样做,它也会改变$a。在先前将某个值指定为$a的引用之后,如何再次将该值指定给$bPHP删除";参考资料;从一个变量。,php,variables,reference,Php,Variables,Reference,我有下面的代码。我想将$b更改为与值一起再次使用。如果我这样做,它也会改变$a。在先前将某个值指定为$a的引用之后,如何再次将该值指定给$b $a = 1; $b = &$a; // later $b = null; 首先:创建从$a到$b的引用会在两个变量之间创建一个连接(因为没有更好的词),因此$a在$b更改时更改正是它的工作方式 因此,假设您想要打破引用,最简单的方法是 unset($b); $b="new value"; @xdazz的答案是正确的,但只需添加以下来自的优秀
$a = 1;
$b = &$a;
// later
$b = null;
首先:创建从
$a
到$b
的引用会在两个变量之间创建一个连接(因为没有更好的词),因此$a
在$b
更改时更改正是它的工作方式
因此,假设您想要打破引用,最简单的方法是
unset($b);
$b="new value";
@xdazz的答案是正确的,但只需添加以下来自的优秀示例,就可以深入了解PHP在幕后的工作 在本例中,您可以看到函数foo()中的
$bar
是对函数范围变量的静态引用
取消设置$bar
会删除引用,但不会取消分配内存:
<?php
function foo()
{
static $bar;
$bar++;
echo "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $bar\n";
}
foo();
foo();
foo();
?>
请参阅内联解释
$a=1;//初始化它
$b=&$a;//现在$b和$a变成了同一个变量,只有两个不同的名称
未结算($b);//$b名称已消失,从上下文中消失,但$a仍然可用
$b=2;//现在$b就像一个具有新值的新变量。开始新的生活。
这个答案缺少教育意义上的解释。
<?php
function foo()
{
static $bar;
$bar++;
echo "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $bar\n";
}
foo();
foo();
foo();
?>
Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23