大雄谁谁谁
2014-11-25 00:14
self不能用于访问类自身的属性这句话该怎么理解???
1 <?php
2 class Child{
3 public static $value='static value';
4 public function test(){
5 echo self::$value;
6 }
7 }
8 $obj= new Child();
9 $obj->test();
10 ?>
我写了小的程序试了下 ,$value作为类Child的属性,完全可以输出 static value
self可以用于输出自身类的静态属性,不能输出自身类的非静态属性。你输出的$value是静态属性,如果把static去掉,就不能用self来输出了
其实讲解的老师表达的意思应该是“自身的非静态属性”。
注意区分this self static parent
this self static用于类自身数据访问,parent用于父类数据访问
对于属性,this可以访问非静态属性,self static parent用于静态属性。
对于方法,this self parent可以访问静态、非静态方法,static可以访问静态方法。
$this-> 属性[动] + 方法[静/动]; self:: 属性[静] + 方法[静/动]; parent:: 属性[静] + 方法[静/动]; static:: 属性[静] + 方法[静];
我也是对这句话理解有问题.
应该再加一个 this伪变量作为对比 就比较容易理解了, this用于访问自身非静态属性 self用户访问静态属性
对于这句话,理解不能。
PHP面向对象编程
70154 学习 · 361 问题
相似问题