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是引用非静态类的实例名。
随机推荐
- HBuilder mui 手机app开发 Android手机app开发 ios手机app开发 打开新页面 预加载页面 关闭页面
创建子页面 在mobile app开发过程中,经常遇到卡头卡尾的页面,此时若使用局部滚动,在android手机上会出现滚动不流畅的问题: mui的解决思路是:将需要滚动的区域通过单独的webview实 ...
- uwp 中的音频开发
xml code --------------------------------------------------- <UserControl x:Class="WinTest.H ...
- Linux命令全训练
一.实验目的 为后续上机实验做准备,熟悉常用的Linux操作. 二.实验平台 操作系统:Ubuntu14.04 三.实验内容和要求 1.Linux系统中的常用快捷键 Tab 自动补全 上下箭头 显示历 ...
- 在ubuntu18.04上部署项目时遇到的问题总结
因为在实验室中,有几台空闲的机子,我便选了一台准备做一个本地的服务器,因为买的阿里云学生机和之前用于FQ的机子感觉都不太顺手,阿里的学生机配置稍低,FQ用的服务器延迟太高.开始在centos和ubun ...
- SpringBoot博客开发之异常处理
异常处理: 背景: 最近在搭建属于自己的个人博客(码农小白的执念),自己搭建后端的时候首先考虑的是异常处理.个人也是一边学习一边做,难免有疏漏的地方,希望朋友们在不对的地方提醒下. 技术栈: spri ...
- IDEA中的Git操作,看这一篇就够了!
大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. 环境准备 使用前需要安装一个远 ...
- Linux centos7 mysql 的安装配置
2021-07-21 1. 创建用户 # 创建用户useradd mysql# 修改密码 passwd mysql 2. 下载 wget 网址 3. 解压 # 创建安装文件夹mkdir app# 解压 ...
- Adaptive AUTOSAR 学习笔记 16 - 时间同步和网络管理
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf.作者:Zijian/TENG 原文地 ...
- Qt5获取系统文件图标,文件路径
获取系统图标: QFileIconProvider icon_provider; QIcon icon = icon_provider.icon(QFileIconProvider::Folder); ...
- 紫色飞猪的研发之旅--06go自定义状态码
在实际开发中,需要前后端需要协商状态码,状态码用于后端返前端时使用.在一个团队中,定义的状态码讲道理应该是一致的,项目开始的起始阶段状态码应该是定义了个七七八八的,随着功能的叠加而不断增加.此系列将围 ...