首页 > 后端开发 > php教程 > 对象支持可变吗?

对象支持可变吗?

WBOY
发布: 2016-06-23 14:06:46
原创
790 人浏览过

如题:对象支持可变吗?


回复讨论(解决方案)

对象支持可变

对象支持可变

不行啊
类名支持可变
但对象就是不行

<?php  class obj{    public $test='测试';  }  $obj2=new obj;  $obj3="obj2";  var_dump($obj3->test);    
登录后复制

可变变量是这么用得吗?

class obj{    public $test='测试';  }   $obj2=new obj;  $obj3="obj2";  var_dump($$obj3->test);  
登录后复制
string(4) "测试"

可变变量是这么用得吗?PHP code?1234567class obj{    public $test='测试';  }    $obj2=new obj;  $obj3="obj2";  var_dump($$obj3->test);  string(4) "测试"

多谢版主,可还是不太理解..
变量的可变我知道,一个$代表变量本身的值,二个$表示把变量的值当作变量。
还有函数、类的可变都是通过一个字符来充当它们名字的,而对象为什么还要在前面加上一个$..

那么你自己想想
$obj2=new obj;
var_dump($obj2->test);
该是什么结果?

那么
$obj3="obj2";
var_dump($$obj3->test);
是不是该多一个 $

那么你自己想想
$obj2=new obj;
var_dump($obj2->test);
该是什么结果?

那么
$obj3="obj2";
var_dump($$obj3->test);
是不是该多一个 $

嗯,知道了
如果一个$的话,PHP会直接把自身当作一个对象,通过$obj3去获取其本身的属性,但后来发现$obj3并不是一个对象,而是一个变量,而变量不能直接访问对象的属性,所以要在其前面加上一个$,后来PHP发现又发现$obj2并不单单是一个变量而已,而是大名鼎鼎的对象,所以此时$obj3才是一个对象,然后就获取到了。
哈哈
不知道理解的正确不...
一直不敢自己下结论。。。

理解的正确!

感谢版主,感谢IT民工,感谢CSDN,感谢论坛的发明者,是你们又让我看到了光明,又让我找到了荀活下去的的理由

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板