PHP5.3新特性小结


Posted in PHP onFebruary 14, 2016

本文总结分析了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
Dec 14 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
PHP新建类问题分析及解决思路
Nov 19 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
自制PHP框架之路由与控制器
May 07 PHP
php实现的错误处理封装类实例
Jun 20 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
PHP解压tar.gz格式文件的方法
Feb 14 #PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 #PHP
PHP使用socket发送HTTP请求的方法
Feb 14 #PHP
PHP闭包函数详解
Feb 13 #PHP
php设计模式之委托模式
Feb 13 #PHP
PHP常用设计模式之委托设计模式
Feb 13 #PHP
php判断邮箱地址是否存在的方法
Feb 13 #PHP
You might like
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
JQuery基础语法小结
2015/02/27 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
python中引用与复制用法实例分析
2015/06/04 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
浅谈Python type的使用
2019/11/19 Python
python opencv进行图像拼接
2020/03/27 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
NFL官方在线商店:NFLShop
2020/07/29 全球购物
车间工艺员岗位职责
2013/12/09 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
Nginx HTTP跳转至HTTPS
2022/05/15 Servers