对象支持可变吗?
回复讨论(解决方案)
对象支持可变
对象支持可变
不行啊
类名支持可变
但对象就是不行
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 语法