问答详情
源自:4-4 字符串写时复制实战

关于字符串写时复制

$a = 'bbb';
xdebug_debug_zval('a');
$b = $a;
xdebug_debug_zval('a');
$b = '';
xdebug_debug_zval('a');
$aa = '';
xdebug_debug_zval('aa');
$aa = date('Y-m-d');
$bb = &$aa;
xdebug_debug_zval('aa');

并没有写时复制

结果:

a:

(refcount=0, is_ref=0)string 'bbb' (length=3)

a:

(refcount=0, is_ref=0)string 'bbb' (length=3)

a:

(refcount=0, is_ref=0)string 'bbb' (length=3)


提问者:_浮生若梦_ 2019-03-28 19:00

个回答

  • 紫气东来0106
    2019-05-19 22:49:43

    xdebug出来的数据不够全面,在php7.1.x中,常量字符串的refcount是0,可以GDB试试 

  • 咔嚓886
    2019-04-23 21:08:05

    写成$a=time()."bbb";refcount就为1了