博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 self 和static的区别
阅读量:6282 次
发布时间:2019-06-22

本文共 821 字,大约阅读时间需要 2 分钟。

hot3.png

<?php

可你知道self和static的区别么?

其实区别很简单,只需要写几个demo就能懂:

Demo for self:

class Car
{
 public static function model(){
  self::getModel();
 }
 
 protected static function getModel(){
  echo "This is a car model";
 }
}

Car::model();

Class Taxi extends Car
{
 protected static function getModel(){
  echo "This is a Taxi model";
 }
}

Taxi::model();

得到输出    
This is a car model
This is a car model

可以发现,self在子类中还是会调用父类的方法

Demo for static

    

class Car
{
 public static function model(){
  static::getModel();
 }
 
 protected static function getModel(){
  echo "This is a car model";
 }
}
 
Car::model();
 
Class Taxi extends Car
{
 protected static function getModel(){
  echo "This is a Taxi model";
 }
}
 
Taxi::model();

得到输出

This is a car model
This is a Taxi model

可以看到,在调用static,子类哪怕调用的是父类的方法,但是父类方法中调用的方法还会是子类的方法(好绕嘴。。)

 

转载于:https://my.oschina.net/hongjiang/blog/673058

你可能感兴趣的文章
串口编程C++实例(CE) .
查看>>
【形式化方法:VDM++系列】3.基于VDM++的图书管理系统需求定义
查看>>
No component factory found for ListenerAddComponent. Did you add it to @NgModule.entryComponents?
查看>>
python def说明
查看>>
实验四
查看>>
关于上、下拉电阻的总结整理
查看>>
STL--map学习笔记
查看>>
gogo learning
查看>>
软件工程概论作业2
查看>>
利用Boost影响Lucene查询结果的排序
查看>>
Spring boot(四)Spring Boot 集成 MyBatis
查看>>
BZOJ4502串——AC自动机(fail树)
查看>>
[Codeforces757G]Can Bash Save the Day?——动态点分治(可持久化点分树)
查看>>
BZOJ2521[Shoi2010]最小生成树——最小割
查看>>
BZOJ1861[Zjoi2006]书架——非旋转treap
查看>>
【转】delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)
查看>>
lombok安装和使用
查看>>
debian var目录
查看>>
项目功能积累
查看>>
邻接表(有向图)
查看>>