文档章节

大概率 PHP中static和self的区别

s
 shangshandalaohu
发布于 2017/06/05 08:33
字数 287
阅读 1
收藏 0

使用 self:: 或者 CLASS对当前类的静态引用,取决于定义当前方法所在的类:

 

使用 static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。

 

静态绑定是PHP 5.3.0,增加的一个功能 用于在继承范围内引用静态调用的类

 

简单通俗的来说,

 

self就是写在哪个类里面, 实际调用的就是这个类.

 

static代表使用的这个类, 就是你在父类里写的static,然后被子类覆盖,使用的就是子类的方法或属性

 

<?php class Person { public static function name() { echo "111"; echo "<br />"; } public static function callself() { self::name(); }

 

public static function callstatic()

{

    static::name();

}

}

 

class Man extends Person { public static function name() { echo "222"; echo "<br />"; } }

 

Man::callself(); // output: 111 Man::callstatic(); // output: 222 ?> 

 

 

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible。

本文转载自:

共有 人打赏支持
s
粉丝 0
博文 34
码字总数 6669
作品 0
php面向对象中self和static的区别

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

botkenni
2016/11/07
9
0
关于 self 和static的区别

<?php 可你知道self和static的区别么? 其实区别很简单,只需要写几个demo就能懂: Demo for self: class Car { public static function model(){ self::getModel(); } protected static fu......

chenhongjiang
2016/05/10
37
0
PHP中new static 的用法和new self 之间的区别

啥都不多说: 举个栗子: 先来看第一个true 我们大致可以理解为 new self = new static ; 在来看第二个true 我们理解为 在 extendWangjh 这个类中的 self 还是指向了子类,为什么呢? 不服 ...

王景华
2016/03/25
15
0
PHP中this,self,parent的区别

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

一切_放空
2013/08/27
0
0
PHP中this,self,parent的区别

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

随智阔
2012/11/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 我居然在 osc 里追剧

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @舆情风控小组 :分享王菲的单曲《笑忘书》 《笑忘书》- 王菲 手机党少年们想听歌,请使劲儿戳(这里) @艾尔库鲁斯:如果给大家一个选择的机...

小小编辑
41分钟前
57
6
rabbitMq的客户端使用笔记

1、channel声明队列的queueDeclare方法的参数解析 durable: 是否持久化, 队列的声明默认是存放到内存中的,如果rabbitmq重启会丢失,如果想重启之后还存在就要使队列持久化,保存到Erlang自...

DemonsI
49分钟前
0
0
“全新” 编程语言 Julia开箱体验

本文共 851字,阅读大约需要 3分钟 ! 概 述 Julia 是一个 “全新”的高性能动态编程语言,前两天迎来了其 1.0 正式版的重大更新。Julia集 Python、C、R、Ruby 之所长,感觉就像一种脚本语言...

CodeSheep
今天
12
0
软件自动化测试初学者忠告

题外话 测试入门 很多受过高等教育的大学生经常问要不要去报测试培训班来入门测试。 答案是否。 高等教育的合格毕业生要具备自学能力,如果你不具备自学能力,要好好地反省一下,为什么自己受...

python测试开发人工智能安全
今天
5
0
java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部