21,886
社区成员
发帖
与我相关
我的任务
分享
function &drupal_static($name, $default_value = NULL, $reset = FALSE) {
……
}
$directory = &drupal_static(__FUNCTION__, '');
function drupal_static_reset($name = NULL) {
drupal_static($name, NULL, TRUE);
}
function drupal_static_reset($name = NULL) {
drupal_static($name, NULL, TRUE);
}
function &func() {
return $a;
}
$a = func(); //这种调用方式得到的不是引用传值
$a =& func(); //这样调用才是引用传值
$a = 1;
function &func(&$a) {
return $a;
}
$b = func($a);
$c =& func($a);
$b = 2;
echo "a: $a, b: $b, c: $c. <br />\n";
//输出a: 1, b: 2, c: 1.
//可见对$b的修改不会影响$a
$c = 3;
echo "a: $a, b: $b, c: $c. <br />\n";
//输出a: 3, b: 2, c: 3.
//可见对$c的修改会影响$a
function func() {
static $a = 1;
echo $a ++ . ", ";
}
while($a ++ < 10) func();
//输出结果: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
<?php
$foo = 'foo';
function &foo() {
return $GLOBALS['foo'];
}
// 不提倡,要显时声明为引用
$foo1 = foo();
// 正确格式
$foo2 = &foo();
// 虽然可以用
var_dump($foo1 === $foo2);
// 正确调用
foo();
// 语法错误
&foo();