码迷,mamicode.com
首页 > 其他好文 > 详细

this为何不能用在静态方法中

时间:2016-08-08 06:23:13      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:

在类里面的静态方法是不能访问类的非静态成员的,原因很简单,我们要想在本类的方法中访问本类的其它成员,我们需要使用$this这个引用,而$this这个引用指针是代表调用此方法的对象,我们说了静态的方法是不用对象调用的,而是使用类名来访问,所以根本就没有对象存在,也就没有$this这个引用了,没有了$this这个引用就不能访问类里面的非静态成员,又因为类里面的静态成员是可以不用对象来访问的,所以类里面的静态方法只能访问类的静态的属性,既然$this不存在,在静态方法中访其它静态成员我们使用的是一个特殊的类“self”;self和$this相似,只不过self是代表这个静态方法所在的类。所以在静态方法里,可以使用这个方法所在的类的“类名”,也可以使用“self”来访问其它静态成员,如果没有特殊情况的话,我们通常使用后者,即“self::成员属性”的方式。

 

this为何不能用在静态方法中

标签:

原文地址:http://www.cnblogs.com/zhengcai/p/5747842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!