欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

self this

发布时间:2025/7/14 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 self this 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义的。

这里我主要谈的是this,self关键字之间的区别。从字面上来理解,分别是指这、自己。先初步解释一下,this是指向当前对象的指针(可以看成C里面的指针),self是指向当前类的指针。我们这里频繁使用指针来描述

 

一. self .    1.self可以访问本类中的静态属性和静态方法,可以访问父类中的静态属性和静态方法。用self时,可以不用实例化的 [php] view plaincopy
  • 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 [php] view plaincopy
  • class self_test {  
  •   
  •     static $instance;  
  •   
  •     public function __construct(){  
  •         self::$instance = 'dell';  
  •     }  
  •   
  •     static public function pentium(){  
  •         return self::$instance;//静态方法也可以继续访问静态变量,访问时需要加$  
  •     }  
  •   
  •     public function tank(){  
  •         return self::pentium();//访问静态方法pentium()  
  •     }  
  • }  
  •   
  • $str = new self_test();  
  • echo $str->tank();  
  • 页面输出:dell

         2.self可以访问const定义的常量 [php] view plaincopy
  • class self_test {  
  •   
  •     const  NAME = 'tancy';  
  •   
  •     public function tank(){  
  •         return self::NAME;  
  •     }  
  • }  
  •   
  • $str = new self_test();  
  • echo $str->tank();  
  • 页面输出:tancy

    二.this 1.this可以调用本类中的方法和属性,也可以调用父类中的可以调的方法和属性,可以说除过静态和const常量,基本上其他都可以使用this联络 [php] view plaincopy
  • 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是引用非静态类的实例名。

    转载于:https://www.cnblogs.com/songyanan/p/9025740.html

    《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

    总结

    以上是生活随笔为你收集整理的self this的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。