PHP5.3新特性小结
本文总结分析了PHP5.3新特性。分享给大家供大家参考,具体如下:
1、命名空间 解决了类,函数和常量名冲突的问题
2、静态绑定 继承时父类可以直接调用子类重写父类的方法
class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // 后期静态绑定从这里开始 } } class B extends A { public static function who() { echo __CLASS__; } } B::test();
3、匿名函数,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数
//匿名函数做回调函数 uasort($arr ,function($a, $b){ })
闭包函数也可以作为变量的值来使用
$fn = function ($a) { echo $a; }; $fn(1);
PHP会自动把表达式转换成内置类Closure的 对象实例
$fn = function ($a) { echo $a; }; ee($fn); /** * Closure Object ( [parameter] => Array ( [$a] => ) ) */
匿名函数目前是通过Closure类来实现的。目前还不稳定,不适用于正式开发
3、?: 操作符
$a = 0; $b = 2; ee($a ?: $b); # 2 类似js中的 ||
4、新增常量 __DIR_
5、新的垃圾回收机制,解决了循环引用的问题
gc_enable(); // 激活循环引用收集器,默认开启 var_dump(gc_collect_cycles()); // 强制回收已无效的变量 gc_disable(); // 禁用GC
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《PHP错误与异常处理方法总结》及《php常用函数与技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
PHP 7的一些引人注目的新特性简单介绍
1. ?? 运算符(NULL 合并运算符) 把这个放在第一个说是因为我觉得它很有用.用法: $a = $_GET['a'] ?? 1; 它相当于: <?php $a = isset($_GET['a']) ? $_GET['a'] : 1; 我们知道三元运算符是可以这样用的: $a ?: 1 但是这是建立在 $a 已经定义了的前提上.新增的 ?? 运算符可以简化判断. 2. 函数返回值类型声明 官方文档提供的例子(注意 ... 的边长参数语法在 PHP 5.6 以上的版本中才有): <?php
-
PHP6 mysql连接方式说明
mysqlnd是在PHP源码树中集成,与原先的libmysql不同,mysqlnd与内核联系更紧密. 官方说内存占用要节省40%左右.速度也更快. 顺便提一下.如果在升级到PHP5.3以后,数据库连接时出现mysql_connect()[2002] tcp://localhost:3306 的错误提示时. 需要将localhost改成127.0.0.1,或者将连接方式由tcp改为socket. 在使用phpmyadmin这类工具时,也可以按照上述方式修改config.inc.php
-
我整理的PHP 7.0主要新特性
截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了.后续一些版本的迭代主要也就是修修bug,优化之类的.下面就来说话我们一直期待的php7.0新特征吧. 1.标量参数类型声明 现在支持字符串(string).整型(int).浮点数(float).及布尔型(bool)参数声明,以前只支持类名.接口.数组及Callable 两种风格:强制转换模式(默认)与严格模式 <?php // Coer
-
PHP6新特性分析
本文讲述了PHP6的新特性.分享给大家供大家参考,具体如下: 1.支持Unicode 支持Unicode是有其必然,虽然Unicode占用较多的空间,但Unicode带来的便利性,远超过占用空间的缺点,尤其在国际化的今天,硬件设备越来越强大,网速也大幅度的提升,这么一点小小的缺点是可以忽略的.另外一点,PHP也可以在.ini文件中设定是否开启支持Unicode,决定权在你自己,这是一个不错的点子,关掉Unicode的支持,PHP的性能并不会有大幅度的提升,主要的影响在于需要引用字符串的函数. 2
-
浅谈php7的重大新特性
截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了.后续一些版本的迭代主要也就是修修bug,优化之类的.下面就来说话我们一直期待的php7会有那些主要的变化了... 新特性预览 ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG 增加抽象语法树,使编译更加科学 64位的INT支持 统一的变量语法 原声的TLS - 对扩展开发有意义 一致性foreach循环的改进 新增
-
PHP6 先修班 JSON实例代码
它是基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集 JSON 主要利用了成對的 {} 來包住各個object(物件),用成對的 [] 來包各個array(陣列), 用成對的 "" 來包住各字串,用逗號來區隔各變數而資料型態有 string, number, array, object 下面簡單的JSON格式,敘述了一個 object json 擁有一個成員變數,這
-
PHP6 中可能会出现的新特性预览
这些特性包括: 集成OpCache(OPcache通过对PHP的opcode进行缓存和优化,可以提高PHP程序的执行速度) 改善对64位环境的支持 支持Unicode 清理内部API 提升代码质量,做到Warning-Free 改善OPcodes.编译器.运行时 JIT编译器(LibJIT?) 支持Annotation(注解?) 命名自变量(Named argument) 不同等级的类型提示 支持HTTP 2.0协议(可能会使用nght
-
PHP5.3新特性小结
本文总结分析了PHP5.3新特性.分享给大家供大家参考,具体如下: 1.命名空间 解决了类,函数和常量名冲突的问题 2.静态绑定 继承时父类可以直接调用子类重写父类的方法 class A { public static function who() { echo __CLASS__; } public static function test() { static::who(); // 后期静态绑定从这里开始 } } class B extends A { public static funct
-
JDK 7 新特性小结实例代码解析
1.switch支持String做参数 /*** * switch支持字符串做参数 jdk7 * @author huangjiawei */ public class SwitchTest { public static void switchTest(String arg) { switch (arg) { case "Lisa": System.err.println("我是Lisa!"); break; case "Mike": Syst
-
PHP5.5新特性之yield理解与用法实例分析
本文实例讲述了PHP5.5新特性之yield理解与用法.分享给大家供大家参考,具体如下: yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低. yield生成器允许你 在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组. 使用示例: /** * 计算平方数列 * @param $start * @param $stop * @return Generat
-
你应该知道的Python3.6、3.7、3.8新特性小结
很多人在学习了基本的Python语言知识后,就转入应用阶段了,后期很少对语言本身的新变化.新内容进行跟踪学习和知识更新,甚至连已经发布了好几年的Python3.6的新特性都缺乏了解. 本文列举了Python3.6.3.7.3.8三个版本的新特性,学习它们有助于提高对Python的了解,跟上最新的潮流. 一.Python3.6新特性 1.新的格式化字符串方式 新的格式化字符串方式,即在普通字符串前添加 f 或 F 前缀,其效果类似于str.format().比如 name = "red"
-
IntelliJ IDEA2020.3 新特性(小结)
北京时间2020年12月1日,JetBrain公司推出了二十周年第三个稳定版的IntelliJ IDEA 2020.3 . 距离上一个稳定版IDEA,过去了小五个月,这次的更新来得比较晚,我的博客也是.如果不是同事提醒,我也差点忘记了自己其实是打算把IDEA编辑器这个系列给一直更新下去的哈哈哈,话不多说,让我们先进官网看看. 以下是官网的原话: IntelliJ IDEA 2020.3 adds interactive hints and inline watches in the debugg
-
20多个小事例带你重温ES10新特性(小结)
ES10 虽然没有像 ES6 那么多新特性,但 ES10 仍然有一些有用的特性.文本通过简单示例来介绍了 ES10 新出来的特性.通过这种方式,咱们就可以快速理解,而不需要看太多的官方解释. ES10 新特性主要如下: 数组方法:flat和flatMap Object.fromEntries 字符串方法:trimStart 和 trimEnd Symbol 的 description 属性 try { } catch {} // catch 的参数可以省略了 JSON ⊂ ECMAScript
-
C++第11版本中的一些强大的新特性小结
Auto Type Deduction 自动类型推导 auto 关键字让用户得以使用 C++ 内置的类型推导特性. std::string something = somethingthatreturnsastring.getString(); auto something = somethingthatreturnsastring.getString(); Auto 关键字会对上述自变量(something)进行自动推导,得出其应该是 string 类型的结论,并在 auto 出现的地方用正确
-
PHP5的XML新特性
面向的读者 这篇文章的面向对象是所有对PHP5的XML新功能感兴趣的各个水平的PHP开发者.我们假定读者掌握XML的基本知识.然而,如果你已经在你的PHP当中使用了XML,那么这篇文章也会让你受益非浅. 介绍 在当今的互联网世界,XML已经不再是一个时髦词了,它已经被广泛的接受和规范的使用了.因此相对于PHP4,PHP5对于XML的支持更受到了重视.在PHP4中你面对的几乎都是非标准,API中断,内存泄漏以及其它不完全的功能.尽管有些不足已经在PHP4.3中得到改进,开发者们还是决定抛弃原有的代
-
Go1.18新特性之泛型使用三步曲(小结)
目录 01 Go中的泛型是什么 1.1 传统的函数编写方式 1.2 泛型函数编写方式 02 从泛型被加入之前说起 2.1 针对每一种类型编写一套重复的代码 2.2 使用空接口并通过类型断言来判定具体的类型 2.3 传递空接口并使用反射解析具体类型 2.4 通过自定义接口类型实现 03 深入理解泛型--泛型使用“三步曲” 3.1 第一步:类型参数化 3.2 第二步:给类型添加约束 3.3 第三步:类型参数实例化 04 泛型类型约束和普通接口的区别 总结 01 Go中的泛型是什么 众所周知,Go是一
-
AndroidStudio升级到3.0的新特性和注意事项小结
概述 谷歌发布Android Studio3.0正式版已经有一段时间了,最近抽空升级了一下,也踩了一些坑.特地记录一下.作为开发者第一时间体验谷歌带来的新特性是很有必要的.当然为了项目稳定性,也要根据实际情况决定是否升级相关插件 升级 从已有的IDE升级,无非就是File->Settings->Appearance&Behavior->Updates,这里可以选择升级渠道:Canary(金丝雀)Dev(开发版)Beta(Beta版)Stable(稳定版),以及是否使用安全链接.
随机推荐
- PHP数组交集的优化代码分析
- jQuery页面加载初始化的3种方法(推荐)
- 详解Vue-cli 创建的项目如何跨域请求
- iOS中的UITextView文字输入光标使用技巧小结
- Python常用的内置序列结构(列表、元组、字典)学习笔记
- 浅析GridView中显示时间日期格式的问题
- mysql 读写分离(基础篇)
- 鼠标滚轴控制文本框值的JS代码
- asp清理缓存的代码
- Java Socket编程实例(二)- UDP基本使用
- ubuntu上配置Nginx+PHP5 FastCGI服务器配置
- SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案
- 浅析JavaScript中的类型和对象
- jquery实现下拉框多选方法介绍
- JS实现点击登录弹出窗口同时背景色渐变动画效果
- Hadoop streaming详细介绍
- Android开发实现TextView显示丰富的文本
- javascript创建cookie、读取cookie
- python 动态加载的实现方法
- Spring容器扩展机制的实现原理