文档章节

大概率 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
PHP5.3_延迟静态绑定_static

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

斯文剑客
2012/01/06
0
2
PHP中new static()与new self()的区别异同分析

self - 就是这个类,是代码段里面的这个类。 static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个...

lilugirl
2016/04/07
15
0

没有更多内容

加载失败,请刷新页面

加载更多

快速get到学习Linux操作系统的点

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能够运行主要的UNIX工具软件、网络协议和应用程序。它支持32位...

linux-tao
12分钟前
0
0
Docker Compose 之进阶篇

前文《Docker Compose 简介》和《Dcoker Compose 原理》两篇文章中分别介绍了 docker compose 的基本概念以及实现原理。本文我们将继续探索 docker compose,并通过 demo 介绍一些主要的用法...

Java干货分享
19分钟前
0
0
《netty入门与实战》笔记-04:pipeline 与 channelHandler

这一小节,我们将会学习 Netty 里面一大核心组件: Pipeline 与 ChannelHandler Netty 中的 pipeline 和 channelHandler 通过责任链设计模式来组织代码逻辑,并且能够支持逻辑的动态添加和删...

Funcy1122
24分钟前
0
0
知识积累

####知识积累 Q:What is the bit depth of a JPEG? A:JPEG is standardized as an 8-bit image file. This means that each color channel of a pixel has 8-bits of data allocated to repr......

-___-
36分钟前
0
0
shell学习之创建函数

函数是一个脚本代码块,你可以为其命名并在代码中任何位置重用。 在bash shell脚本中创建函数基本使用如下两种方式,第二种格式更接近于其他编程语言中定义函数的方式。 function name {com...

woshixin
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部