php中static、self、$this的区别有哪些?
程序员文章站
2022-04-04 20:55:45
...
php中static、self、$this的区别有:1、【$this】表示对象的引用,写在类中的非静态方法中;2、self和this不同,它指向类本身,不指向任何实例化对象;3、static一般用来访问类中的静态变量和静态方法。
php中static、self、$this的区别有:
1、$this
表示对象的引用 $this写在类中的非静态方法中, 实例化该类,谁调用该方法(一般是对象调用)$this则表示该对象的引用。
<?php class Person { public $name; public function getName() { echo $this->name; } } $p = new Person(); $p2 = new Person(); $p->name = "小红"; $p2->name = "小明"; $p->getName(); // 小红 $p2->getName(); // 小明
2、self
和 this 不同,它指向类本身,不指向任何实例化对象,一般用来访问类中的静态变量和静态方法,也是写在类中的方法。self写在哪个类中则表示该类的引用
<?php class Person { public static $name = "小红"; public static function getName() { echo self::$name; } } $p = new Person(); $p2 = new Person(); $p::getName(); // 小红 $p2::getName(); // 小红 $p::$name = "小明"; $p::getName(); // 小明 $p2::getName(); // 小明
3、static
一般用来访问类中的静态变量和静态方法,也是写在类中的方法,也是那个类调用该方法static就表示那个类(绑定那个类)
<?php class A { public function say() { echo "Hello"; } public function saySelf() { //static 和 self 可以调用非静态方法 不能调用非静态属性 静态方法中不能有$this // static 和 self 可以写在非静态的方法中 ,可以使用对象调用 self::say(); } public function sayStatic() { static::say(); } } class B extends A { public function say() { echo "World"; } } $b = new B(); $b->say(); // World $b->saySelf(); // Hello $b->sayStatic(); // World
相关学习推荐:PHP编程从入门到精通
以上就是php中static、self、$this的区别有哪些?的详细内容,更多请关注其它相关文章!
上一篇: Meta也很强_html/css_WEB-ITnose
下一篇: php 301重定向代码
推荐阅读
-
php类中的$this,static,final,const,self这几个关键字使用方法_php实例
-
PHP中static关键字以及与self关键字的区别_PHP教程
-
PHP中new static()与new self()的区别异同分析_php技巧
-
php类中的$this,static,final,const,self这几个关键字使用方法_php实例
-
PHP中new static()与new self()的区别异同分析
-
PHP中new static() 和 new self() 的区别介绍_PHP
-
PHP中new static()与new self()的区别异同分析_PHP
-
php中new self()和new static()两者之间的区别!
-
PHP中new static()与new self()的区别异同分析
-
php面向对象程序设计中self与static的区别分析