php面向对象的问题

WBOY
Freigeben: 2016-06-23 13:45:42
Original
941 Leute haben es durchsucht

请看下面一段代码,非常简单,请大家花点时间看看:

class person{                                                     public $name;    public function __construct(){        $this->$name='Tom';            //代码1     }}$a=new person();echo $a->name;
Nach dem Login kopieren


运行上面这段代码,会报一个'变量未定义'的错误.
请问为什么会报这个错误?
如果把代码1换成 $this->name='Tom',就不会报错
请问这里的美元符号有什么特殊意义吗?没有美元符号和有美元符号有什么区别?
谢谢.


回复讨论(解决方案)

那么你说说看:
$name 和 $$name 的区别

$this->name    类的name属性
$this->$name  类的$name 属性,由于你没先定义变量$name ,所以当然要报错了。

可变变量
如果$name = 'hello'
$this->$name   相当于  $this->hello

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage