self this
这里我主要谈的是this,self关键字之间的区别。从字面上来理解,分别是指这、自己。先初步解释一下,this是指向当前对象的指针(可以看成C里面的指针),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();
- 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定义的常量
- class self_test {
- const NAME = 'tancy';
- public function tank(){
- return self::NAME;
- }
- }
- $str = new self_test();
- echo $str->tank();
页面输出:tancy
- 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();
private
protected
一句话,self是引用静态类的类名,而$this是引用非静态类的实例名。
随机推荐
- Redis笔记(一)
redis:1.什么是缓存? mybatis一级缓存和二级缓存 mybatis的一级缓存存在哪? SqlSession,就不会再走数据库 什么情况下一级缓存会失效? 当被更新,删除的时候sqlsess ...
- Java数八大据类型的拓展
public class 数据类型拓展问题 { public static void main(String[] args) { //================================= ...
- Redis详解(一)——
Redis详解1 https://www.cnblogs.com/MoYu-zc/p/14985250.html https://www.cnblogs.com/xiaoxiaotank/p/1498 ...
- Java基础(一)——面向对象
一.对象 1.成员变量和局部变量的区别 两类变量同名时,局部变量具有更高的优先级. 作用域不同:局部变量的作用域仅限于定义它的方法,作用于函数或者语句中:成员变量的作用域在整个类中. 初始值不同:Ja ...
- CSP-J&S 2020挂分记
应该是退役记 OI 是一门玄学--考后有感 Day -inf 找各科老师请假备考,看着我倒一倒二的好成绩分纷劝我放弃竞赛,成功请到了假. Day -1 怎么莫名其妙大家都在学些奇怪的东西? 跟风写了一 ...
- Python常见问题 - python3 requests库提示警告InsecureRequestWarning的问题
当使用 requests 库发送请求时报了以下警告 D:\python3.6\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequ ...
- Flask(6)- debug 模式
使用 Flask 开发过程中存在两个常见的问题 当 Flask 程序出错时,没有提示错误的详细信息 修改 Flask 源代码后需要重启 Flask 程序 这两个问题非常的影响开发效率,因此 Flask ...
- k8s garbage collector分析(1)-启动分析
k8s garbage collector分析(1)-启动分析 garbage collector介绍 Kubernetes garbage collector即垃圾收集器,存在于kube-contr ...
- 【死磕NIO】— NIO基础详解
Netty 是基于Java NIO 封装的网络通讯框架,只有充分理解了 Java NIO 才能理解好Netty的底层设计.Java NIO 由三个核心组件组件: Buffer Channel Sele ...
- IT人计算机网络浅析
LAN: 局域网 local Area Network WAN: 广域网 Wide Area Network WAN = LAN +LAN+....+LAN 多个LAN 组成 WAN OSI 七层协议 ...