php中this和self的区别是:self调用的是类,而$this调用的是实例化的对象。self可以访问本类中的静态属性和静态方法,以及const定义的常量,this可以调用本类中的方法和属性。
创新互联建站专业为企业提供鼓楼网站建设、鼓楼做网站、鼓楼网站设计、鼓楼网站制作等企业网站建设、网页设计与制作、鼓楼企业网站模板建站服务,十载鼓楼做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
区别:
self调用的是类,而$this调用的则是实例化的对象。
(推荐教程:php教程)
下面我们来详细说明一下:
1、self可以访问本类中的静态属性和静态方法,可以访问父类中的静态属性和静态方法。用self时,可以不用实例化。
代码示例:
class self_test { static $instance; public function __construct(){ self::$instance = 'instance';//静态属性只能通过self来访问 } public function tank(){ return self::$instance;//访问静态属性 } } $str = new self_test(); echo $str->tank();
结果输出:
instance
2、self可以访问const定义的常量
代码示例:
class self_test { const NAME = 'tancy'; public function tank(){ return self::NAME; } } $str = new self_test(); echo $str->tank();
三、this可以调用本类中的方法和属性,也可以调用父类中的可以调用的方法和属性,除了静态属性和const常量,基本上都可以使用this调用。
代码示例:
class self_test { public $public; private $private; protected $protected; public function __construct(){ $this->public = 'public'; $this->private = 'private'; $this->protected = 'protected'; } public function tank(){ return $this->public; } public function dell(){ return $this->private; } public function datesrt(){ return $this->protected; } } $str = new self_test(); echo $str->tank(); echo "</br>"; echo $str->dell(); echo "</br>"; echo $str->datesrt();
结果:
public private protected
总结:self是引用静态类的类名,而$this是引用非静态类的实例名。
本文名称:php中this和self的区别是什么
文章链接:https://www.cdcxhl.com/article34/cphope.html
成都网站建设公司_创新互联,为您提供动态网站、服务器托管、网站策划、网站维护、关键词优化、用户体验
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联