在PHP5中作为参数传递或分配给变量时是引用还是复制字符串?
答案 0 :(得分:7)
debug_zval_dump()
功能可以帮助您回答这个问题。
例如,如果我运行以下代码部分:
$str = 'test';
debug_zval_dump($str); // string(4) "test" refcount(2)
my_function($str);
debug_zval_dump($str); // string(4) "test" refcount(2)
function my_function($a) {
debug_zval_dump($a); // string(4) "test" refcount(4)
$plop = $a . 'glop';
debug_zval_dump($a); // string(4) "test" refcount(4)
$a = 'boom';
debug_zval_dump($a); // string(4) "boom" refcount(2)
}
我得到以下输出:
string(4) "test" refcount(2)
string(4) "test" refcount(4)
string(4) "test" refcount(4)
string(4) "boom" refcount(2)
string(4) "test" refcount(2)
所以,我会说:
有关更多信息,请参阅以下几个可能有用的链接:
答案 1 :(得分:1)
它们是副本或解除引用。