关于字符串写时复制

来源:4-4 字符串写时复制实战

_浮生若梦_

2019-03-28 19:00

$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)


写回答 关注

2回答

  • 紫气东来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了

PHP7的基本变量

学习PHP7基本变量,掌握PHP7的新特性

10126 学习 · 24 问题

查看课程

相似问题