gpt4 book ai didi

php - PHP5 中是否引用了字符串?

转载 作者:可可西里 更新时间:2023-11-01 00:17:07 25 4
gpt4 key购买 nike

在 PHP5 中,当作为参数传递或分配给变量时,是否引用或复制字符串?

最佳答案

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)


所以,我会说:

  • 字符串在传递给函数时被“refcounted”(并且可能在分配给变量时)
  • 但不要忘记 PHP 会写时复制


有关更多信息,这里有几个可能有用的链接:

关于php - PHP5 中是否引用了字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com