php static与self,PHP5.3新特性static与self区别

很多人都说,PHP 简单,入门门槛较低,但是要学精通确很难。随着 PHP 不断的发展,新特性不断的增加,同时又得兼容老版本 PHP4 的一写语法特征,初学者在学习 PHP 时,显然就不再那么容易了。特别是 PHP 的面向对象(OOP)有很多自身独特的功能,写法上为了兼容老版本,本身就比较混乱;另外一点,PHP 的 OOP 是 PHP4 以后才有的,它出生只是为了个人主页,这导致 PHP 在面向对象方面群龙无首,不同的框架在各方面写法都不一致,这点学起来比其他语言更麻烦。

PHP 5.3 以后 static 关键词加上了一个 Late Static Bindings 后期静态绑定功能,很好的弥补了 self 和 __CLASS__ 的局限性,并且能够很好的处理静态绑定的层级关系。摘自 PHP 官网:As of PHP 5.3.0, PHP implements a feature called late static bindings which can be used to reference the called class in a context of static inheritance. 该功能相当于 get_class($this); 。如下代码示例:<?php

class A {

public static function who() {

echo __CLASS__;

}

public static function test() {

static::who(); // Here comes Late Static Bindings

}

}

class B extends A {

public static function who() {

echo __CLASS__;

}

}

B::test(); // output B

?>

上面的例子是后期静态绑定中最简单的一个,static 后期静态绑定会改变方法的域,同时在遇到了 self,parent 关键词时会向上一级传递调用信息。详细参考:http://php.net/manual/en/language.oop5.late-static-bindings.php。

PHP 5.3 以后除了后期绑定功能,在静态属性和方法的访问上支持使用变量加上双冒号操作符去访问静态成员。如下代码示例:<?php

class Foo {

public static function aStaticMethod() {

// ...

}

}

Foo::aStaticMethod();

$classname = 'Foo';

$classname::aStaticMethod(); // As of PHP 5.3.0

?>

上面的例子在 PHP 官网也有详细描述,参考链接:http://php.net/manual/en/language.oop5.static.php。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】国家开放大学2018年秋季 0257-21T高级英语听力(1) 参考试题

试卷代号&#xff1a;0269 2018-2019年度第一学期考试 文学概论试题 2019年1月 一、选择题&#xff08;请在下面的答题框内写上正确答案的序号&#xff09;&#xff08;每小题3分&#xff0c;共30分&#xff09; 1&#xff0e;在魏晋时期&#xff0c;南朝宋文帝建立“四学”即…

java常见_关于Java的常见误解

java常见Java是世界上使用最广泛的语言&#xff08;需要引用&#xff09;&#xff0c;每个人对此都有自己的见解。 由于它是主流&#xff0c;所以通常会嘲笑它&#xff0c;有时是对的&#xff0c;但有时批评并没有触及现实。 我将尝试解释我最喜欢的5个关于Java的误解。 Java速…

【渝粤教育】国家开放大学2018年秋季 0341-21T高级英语听力(2) 参考试题

试卷编号&#xff1a;0363 座位号 2018—2019学年度第一学期期末考试 市场调查与预测 试题 2019年01月 1、市场调查是在一定时间、地点条件下进行的&#xff0c;是反映市场在特定情况下的信息&#xff0c;具有一定的&#xff08; &#xff09;。 A.科学性 B.时效性 C.社会性 …

带网管工业交换机跟不带网管交换机的差别

交换机是局域网的一种核心设备&#xff0c;可以自主工作的多个计算机系统连接在一起&#xff0c;实现局部的软硬件共享的网络。通常的交换机是利用第二层的MAC地址的进行工作的&#xff0c;所以一般的家庭交换机基本上都是二层交换机。交换机有带网管的也有不带网管的&#xff…

oracle 区分配,ORACLE自动段管理的区分配大小测试

说明&#xff1a;大家知道ORACLE表空间的最小分配单元是区&#xff0c;当进行文件空间划分的时候每次增加的大小都是按区来进行的&#xff0c;且ORACLE在创建表空间的时候&#xff0c;关于EXTENT MANAGEMENT的管理会有两个选项&#xff1a;1、LOCAL AUTOALLOCATE(本地自动管理)…

【渝粤教育】国家开放大学2018年秋季 0551-22T素描(二) 参考试题

编号&#xff1a;0556 座位号 2018&#xff5e;2019学年度第一学期期末考试 广告摄影 试题 2019年1月 一、名词解释&#xff08;每小题5分,共15分&#xff09; 景深&#xff1a; 对比&#xff1a; 全景与特写&#xff1a; 广告摄影试题第1页共4页 二、问答题&#xff08;每…

通讯模块板载天线设计方法

注&#xff1a;本文来自 成都亿佰特 蛇形板载天线是无线通讯模块应用最广泛的一种天线类型&#xff0c;应用在蓝牙、WiFi、ZigBee等对性能要求不高、但对空间要求比较高的领域。今天就让成都亿佰特小编给大家普及一下蛇形板载天线的相关知识吧~ 作为天线工程师&#xff0c;每…

检查两个列表在Java中是否相等

介绍&#xff1a; Java中的列表是按自然顺序排列的。 因此&#xff0c;如果两个列表包含相同顺序的完全相同的元素&#xff0c;则认为它们是相等的。 在本教程中&#xff0c;我们将看到如何在Java中比较两个列表是否相等。 我们还将介绍仅比较两个列表中的元素并忽略其顺序的方…

【渝粤教育】国家开放大学2018年秋季 0680-22T会计基础知识 参考试题

编号&#xff1a;0689 座位号 2018&#xff5e;2019学年度第一学期期末考试 老年心理健康试题 2019年1月 一、名词解释&#xff08;本大题共6小题&#xff0c;每题5分&#xff0c;共30分&#xff09; 期待性焦虑 忧郁&#xff1a; 急躁&#xff1a; 暴躁&#xff1a; 心理…

物联网在水位监测中的应用

注&#xff1a;本文来自 成都亿佰特 基于E820-DTU(2I2-433L)和E90-DTU(433C30)的水位监测应用 水位资料与人类社会生活和生产关系密切。水利工程的规划、设计、施工和管理需要水位资料。桥梁、港口、航道、给排水等工程建设也需水位资料。防汛抗旱中&#xff0c;水位资料更为…

接入层工业交换机、汇聚层工业交换机与核心层工业交换机区别

了解工业交换机的人都知道&#xff0c;工业交换机被划分为接入层工业交换机、汇聚层工业交换机和核心层工业交换机&#xff0c;今天&#xff0c;飞畅科技的小编就来为大家详细说下这三种工业交换机&#xff0c;感兴趣的朋友就一起来看看吧&#xff01; 首先&#xff0c;核心层工…

php作菜单,PHP制作下拉透明菜单

下拉透明菜单var mmenus new Array();var misShow new Boolean();misShowfalse;var misdown new Boolean();misdownfalse;var mnumberofsub0;var musestatusfalse;var mpopTimer 0;mmenucolor#89CB10;mfontcolorMenuText;mmenuoutcolor#ADEF34;mmenuincolor#B5E74E;…

【渝粤教育】国家开放大学2018年秋季 0707-21T办公室实务 参考试题

科目编号&#xff1a;0710 座位号 2018-2019学年度一学期期末考试 幼儿园课程活动设计 试题 2019年 1 月 一、单选题&#xff08;本大题共5小题&#xff0c;每小题4分&#xff0c;共计20分&#xff09; &#xff08;★请考生务必将答案填入到下面对应序号的答题框中★&#xf…

E820-DTU与昆仑通态组态软件联机

随着工业自动化水平的迅速提高&#xff0c;计算机在工业领域的广泛应用&#xff0c;人们对工业自动化的要求越来越高&#xff0c;种类繁多的控制设备和过程监控装置在工业领域的应用&#xff0c;使得传统的工业控制软件已无法满足用户的各种需求。 在开发传统的工业控制软件时&…

【渝粤教育】国家开放大学2018年秋季 1007t公司财务 参考试题

试卷代号&#xff1a;1025 保险学概论 试题 2019年1月 注意事项 一、将你的学号、姓名及分校&#xff08;工作站&#xff09;名称填写在答题纸的规定栏内。考试 结束后&#xff0c;把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完 考卷和答题纸后才可离开考场…

BLE蓝牙和传统蓝牙的区别

在移动设备上使用的蓝牙协议大多都是4.0&#xff0c;而蓝牙的4.0又有两个分支&#xff0c;经典4.0蓝牙和BLE4.0蓝牙&#xff0c;经典4.0就是传统的3.0蓝牙升级而成&#xff0c;向下兼容。而BLE4.0蓝牙是一个新的分支&#xff0c;不向下兼容。相较于传统的蓝牙&#xff0c;BLE蓝…

什么是核心交换机?如何选择核心交换机?

在系统组网中&#xff0c;经常会提到接入交换机、汇聚交换机、核心交换机。通常&#xff0c;我们将网络中直接面向用户连接或访问网络的部分称为接入层&#xff0c;将位于接入层和核心层之间的部分称为分布层或汇聚层&#xff0c;而将网络主干部分称为核心层。那么什么是核心交…

oracle 测试试题,oracle试题

㈠ oracle考试题1.数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。2.Oracle数据库专的版属本&#xff1a;Oracle 8i ,oracle 9i,oracle 10g.最后一个是目前最流行&#xff0c;针对oracle 10g又有标准版1、标准版、企业版和个人版这四个版本。3.数据库对象&…

【渝粤教育】国家开放大学2018年秋季 1087t数学分析专题研究 参考试题

试卷代号&#xff1a;1116 机电控制工程基础 试题&#xff08;半开卷&#xff09; 2019年1月 一、单项选择题&#xff08;每小题3分&#xff0c;共15分&#xff09; 1&#xff0e;一阶系统的传递函数为5sl&#xff0c;则其时间常数为( )。 A&#xff0e;0.5 B&#xff0e;5 C&a…

5W-Lora电台的远距离传输优势

本文来自 成都亿佰特 无线数传电台作为一种通讯媒介&#xff0c;与光纤、微波、明线一样&#xff0c;有一定的适用范围&#xff1a;它提供某些特殊条件下专网中监控信号的实时、可靠的数据传输&#xff0c;具有成本低、安装维护方便、绕射能力强、组网结构灵活、覆盖范围远的特…