php 类中的用$this或self::引用类中的一个方法(静态或非静态)时都可以,有没有特别要求说必须用什么。

还有就是$this与self::这两个操作符运行效率更好一些。那个更好一些... 还有就是$this与self::这两个操作符运行效率更好一些。
那个更好一些
展开
 我来答
本逸春vL
推荐于2017-09-23 · TA获得超过1567个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:655万
展开全部
运行效率与这两个操作符没有关系。

调用当前类的静态方法,规范的写法是使用 self 而非 $this。
因为当你的PHP版本小于 5.3.0,使用 $this 会让代码出现解析错误,而无法运行。

自 PHP 5.3.0 起,才可以通过变量来引用类。
PHP中所有以 $ 开头的都是变量,所以可以知道 $this 其实是一个变量,而 self 是常量。
常量在代码解析阶段就可以确定其值,而变量需要解析之后运行才可以确定。

参考:
http://php.net/manual/zh/language.oop5.php
http://php.net/manual/zh/language.oop5.static.php
http://php.net/manual/zh/language.oop5.paamayim-nekudotayim.php
李雪宁
2018-12-28
知道答主
回答量:1
采纳率:0%
帮助的人:794
展开全部
调用非静态方法,属性, 用$this最好啊!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-05
展开全部
$this 可以引用静态变量? 我还是头一回听。
追问
问的有点问题,我想说的是$this与self::都可以引用一个非静态方法。。。
追答
在静态方法里面引用非静态方法时,只能用self
a = $a;

}
public function abc(){
//echo $this->a;

}
static public function abcd($obj){
//$this = $this;
//$obj->abc();
self::abc();
}
}
$a = new a(1);
a::abcd($a);
$b = new a(2);
a::abcd($b);

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
调涉L
2013-05-05 · TA获得超过1559个赞
知道答主
回答量:137
采纳率:0%
帮助的人:29.5万
展开全部
都是千分之一毫秒的事,干嘛呢
追问
额,我只是好奇,想看看别人有没有一个统一的规范
追答
我一般都用$this的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式