文档章节

关于 self 和static的区别

c
 chenhongjiang
发布于 2016/05/10 21:40
字数 206
阅读 37
收藏 0
点赞 2
评论 0

<?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,子类哪怕调用的是父类的方法,但是父类方法中调用的方法还会是子类的方法(好绕嘴。。)

 

© 著作权归作者所有

共有 人打赏支持
c
粉丝 1
博文 18
码字总数 19923
作品 0
朝阳
PHP基本概念

接口和抽象类的区别 接口中所有的方法都是抽象的,没有程序体。 接口的方法必须被全部实现,否则将报错。 抽象类里可以包含公共方法和抽象方法,抽象的方法必须被实现。 抽象类不能实例化,普...

lilugirl ⋅ 2014/03/12 ⋅ 1

php面向对象中self和static的区别

在php的面向对象编程中,总会遇到 可你知道self和static的区别么? 其实区别很简单,只需要写几个demo就能懂: Demo for self: 得到输出 可以发现,self在子类中还是会调用父类的方法 Demo f...

botkenni ⋅ 2016/11/07 ⋅ 0

PHP中this,self,parent的区别

{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划...

一切_放空 ⋅ 2013/08/27 ⋅ 0

PHP中this,self,parent的区别

{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划...

随智阔 ⋅ 2012/11/21 ⋅ 0

Swift中的方法(Methods)

写在前面 swift中结构体和 枚举 也能够定义方法,这是swift和OC的主要区别之一。在OC中类是唯一能定义方法的类型。但是在swift中类,结构体,枚举中都可以定义方法。 一、实例方法(Instanc...

zh_iOS ⋅ 2016/11/17 ⋅ 0

php中static和self调用静态方法区别

由于看到框架里面经常使用static::method() 于是稍微了解下static和self的区别 废话少说,直接上代码 class Father{public function construct(){$this->init(); self::test();} public stat...

china_lx1 ⋅ 04/19 ⋅ 0

PHP5.3_延迟静态绑定_static

基于PHP版本: 5.3.5 PHP5.3 以后引入了延迟静态绑定: static(关键字) 类似于 self(关键字) , 但它指向的是被调用的类(Document) 而不是包含类(DomainObject) , static 和 self 的区别: Code:...

斯文剑客 ⋅ 2012/01/06 ⋅ 2

关于类方法使用静态还是不静态

看到一个关于类,这是样写的 class a { public static $a; public static function b() { if (!is_set(self::$a)) { self::$a = new a(); } return self::$a; } //其它的方法 public functio......

沈括号 ⋅ 2013/04/30 ⋅ 2

python 对象方法 classmethod, staticclassmethod 区别

python 中普通方法,classmethod, staticclassmethod A.class_foo(1)A.static_foo(22) 运行看看结果: executing foo(,1) self scope: 50 cls scope: 1executing classfoo(main_.A'>,1)exec......

okker ⋅ 2014/03/04 ⋅ 0

self与static之间的基情

关于static,PHP官网这么说的: 声明类成员或方法为static,就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态成员(静态方法除外)。 由于静态方法不需要通过对象即可调用,所...

Scholer ⋅ 2012/12/08 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 35分钟前 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 38分钟前 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 42分钟前 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 50分钟前 ⋅ 0

linux实用操作命令

参考 http://blog.csdn.net/qwe6112071/article/details/50806734 ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 同-a,但不列出"."和"...

简心 ⋅ 今天 ⋅ 0

preg_match处理中文符号 url编码方法

之前想过直接用符号来替换,但失败了,或者用其他方式,但有有些复杂,这个是一个新的思路,亲测可用 <?php$str='637朗逸·超速新风王(300)(白光)'; $str=iconv("UTF-8","GBK",$s...

大灰狼wow ⋅ 今天 ⋅ 0

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 今天 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 今天 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部