为了账号安全,请及时绑定邮箱和手机立即绑定

self不能用于访问类自身的属性这句话该怎么理解???

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    


正在回答

7 回答

self可以用于输出自身类的静态属性,不能输出自身类的非静态属性。你输出的$value是静态属性,如果把static去掉,就不能用self来输出了

2 回复 有任何疑惑可以回复我~
#1

大雄谁谁谁 提问者

还真是这样,你厉害!
2015-01-20 回复 有任何疑惑可以回复我~

其实讲解的老师表达的意思应该是“自身的非静态属性”。

注意区分this self static parent

this self static用于类自身数据访问,parent用于父类数据访问

对于属性,this可以访问非静态属性,self static parent用于静态属性。

对于方法,this self parent可以访问静态、非静态方法,static可以访问静态方法。

$this->   属性[动] + 方法[静/动];
self::    属性[静] + 方法[静/动];
parent::  属性[静] + 方法[静/动];
static::  属性[静] + 方法[静];


5 回复 有任何疑惑可以回复我~

我也是对这句话理解有问题.

0 回复 有任何疑惑可以回复我~

应该再加一个 this伪变量作为对比 就比较容易理解了, this用于访问自身非静态属性 self用户访问静态属性

0 回复 有任何疑惑可以回复我~

对于这句话,理解不能。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

self不能用于访问类自身的属性这句话该怎么理解???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信