-
$var1 = 'zhuchunyu'; $var2 = ""; function foo($vaa){ global $var1,$var2; if (!$vaa){ $var2 = & $var1; } else{ $GLOBALS["var2"] = & $var1; } } foo(false); print "var2------->".$var2." "; // $var2是空字符串 foo(true); print "var2------->".$var2." "; // $var2是zhuchunyu // 解析打印效果
-
function &foo(){ static $b=0; // 申明一个静态变量 $b = $b +1; echo $b; return $b; } $a = foo(); $a = 5; $a = foo(); $a = &foo(); $a = 5; $a = foo(); // 解释下 $a = foo() , $a = $foo() 对于上面的foo函数中的static,指定一个静态变量,当执行一次函数,static设置的变量,是不会消失的。 $a = foo() 它是将函数的返回值的值赋值给$a, $a = $foo() 它是将函数的返回值的内存地址赋值给$a,一旦$a改变了值,那么函数的返回值也会改变,foo函数的返回值就是static静态变量,所以函数的返回值改变,这个静态变量也会改变。 // 打印效果1236
-
$a = 1; $b = &$a; unset($a); print $b; // 输出1 // 解析下 unset删除一个变量,它只是删除了变量与值的内存地址之间的关系,不会删掉值,所以你虽然删除了$a,但是值没有删掉,所以$b对应的值还是1。