PHP new 一个对象什么意思?

今天看官方文档,有个疑问,$obj2=new$obj1;什么意思?有这种写法吗?classTest{staticpublicfunctiongetNew(){return... 今天看官方文档,有个疑问,$obj2 = new $obj1;什么意思?有这种写法吗?class Test{ static public function getNew() { return new static; }}class Child extends Test{}$obj1 = new Test();$obj2 = new $obj1;var_dump($obj1 !== $obj2); 展开
 我来答
babyfans隆哥
2019-05-08 · TA获得超过112个赞
知道小有建树答主
回答量:205
采纳率:77%
帮助的人:64.3万
展开全部
$obj2 = new $obj1; 是给$obj2重新分配一个和$obj1一样的内存,这样修改$obj2的时候,$obj1不会被改变
如果直接$obj2 = $obj1; 的话其实是把$obj1的内存地址共享给了$obj2,这样在修改其中一个的时候另一个也会改变
追问
大佬水平不错,能否加个好友,一起学习PHP?
追答

大佬谈不上,只是平时积累了点知识,可以加好友,私聊说吧

补充一下:像字符串,数组,数字这些变量在赋值的时候默认分配新内存,例如

$str1 = 'qwe';
$str2 = $str1;
$str2 = 'asd';
echo $str1.' '.$str2;     //qwe asd

也可以指定使用&符号在赋值时共享内存,例如

$str1 = 'qwe';
$str2 = &$str1;
$str2 = 'asd';
echo $str1.' '.$str2;     //asd asd
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式