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是引用非静态类的实例名。
随机推荐
- 【AIOT】智能感知--物
From: https://liudongdong1.github.io/ 1. 物体检测 .1. 流体 D. V. Q. Rodrigues, D. Rodriguez and C. Li, &qu ...
- Linux放大缩小字体的快捷键
linux终端窗口字体缩放快捷键 环境:linux, 打开终端, 'ctrl' + '-'字体缩小,一行显示更多的内容 'ctrl' + 'shift' + '+'字体变大 ctl+shift+(+) ...
- linux 系统文件记录
proc系列 /proc/diskstats # 记录磁盘相关信息 http://ykrocku.github.io/blog/2014/04/11/diskstats/
- mysql 优化面试题
第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by涉及的列上建立索引. 2.应尽量避免在 where 子句中使用 ...
- mysql优化: 内存表和临时表
由于直接使用临时表来创建中间表,其速度不如人意,因而就有了把临时表建成内存表的想法.但内存表和临时表的区别且并不熟悉,需要查找资料了.一开始以为临时表是创建后存在,当连接断开时临时表就会被删除,即临时 ...
- 因为手机设置字体大小导致h5页面在webview中变形的BUG
出现这个问题,有以下因素 你的页面采用了rem单位,并且是采用js动态计算html的font-size你的页面被加在了APP中的webview中这该死的手机被重设了字体大小解决方法一般,我们动态计算好 ...
- 关于oracle样例数据库emp、dept、salgrade的mysql脚本复杂查询分析
大家可以自行网上找资源(网上资源比较多,不建议下载我的),也可以在我这里下载: 1.取得每个部门最高薪水的人员名称:正确 一共有4个单位,要进行左外连接 其中一个单位没得员工 SELECT dep ...
- 测试linux python import module
源码test.py #!/usr/bin/env python # -*- coding: UTF-8 -*- import os os.system("df -h") 运行结果( ...
- 集合框架2- ArrayList
其实 Java 集合框架也叫做容器,主要由两大接口派生而来,一个是 collection,主要存放对象的集合.另外一个是Map, 存储着键值对(两个对象)的映射表. 下面就来说说 List接口,Lis ...
- Java基础(一)——面向对象
一.对象 1.成员变量和局部变量的区别 两类变量同名时,局部变量具有更高的优先级. 作用域不同:局部变量的作用域仅限于定义它的方法,作用于函数或者语句中:成员变量的作用域在整个类中. 初始值不同:Ja ...