PHP5.6.x的新鲜事

期中考回来,刷刷php.net,发现——又更新了。。现在马上来看一下What‘s New in PHP 5.6.x

内部操作符重载(internal-operator-overloading)

内部操作符重载首当其冲,因为它是最好玩也是最奇怪的一个。

在这次GMP 对象(对,没错,就是对象!!)支持操作符重载和转换为标量

有一个例子,是对gmp_*模块重载

重载之前的

重载之后的

在这个例子中 + 操作符被重载为 gmp_add , * 操作符被重载为 gmp_mull 。以前的基于函数式的代码让很多算法上的细节无法展现出来,改成基于操作符的就很好理解了。

常量标量表达式(Constant scalar expressions)

在常量、属性声明和函数参数默认值声明时,以前版本只允许常量值,PHP5.6开始允许使用包含数字、字符串字面值和常量的标量表达式。这项改进。。喜大普奔啊。

在里面除了那只可怜的ONE,其他目测都用上了。

导入函数和常量(use function and use const)

use 操作符开始支持函数和常量的导入啦QwQ

话不多说,上代码

这段代码的输出结果是

大家看出use function 和 use const 结构的用法了么?

参数解包功能(Argument unpacking via ...)

在调用函数的时候,通过 ... 操作符(省略号一样的操作符老是感觉不习惯。。)可以把数组或者可遍历对象解包到参数列表

这个输出就一个6

新的全局变量(New Global variables)

全局变量一直是很重要的东西,最后我们一起看一下新的全局变量吧

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING
  • PGSQL_CONNECTION_MADE

注意

但是由于是新语句,很多IDE会。。。

呵呵,期待更新吧

时间: 2024-11-05 18:44:10

PHP5.6.x的新鲜事的相关文章

entos上PHP5.3升级到PHP5.4及更高版本方法

yum配置 执行命令下载.安装yum源,当前是针对Centos6并且64位版本的源: [[email protected]_249 yum.repos.d]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm[[email protected]_249 yum.repos.d]# rpm -ivh ht yum配置执行命令下载.安装yum源,当前是针对Centos6并且64位版本的

iis6.0+php5.6无法加载firebird模块

前日一新项目,内容为将客户代码数据从本司开发服务器迁移至客户服务器 客户服务器环境:windows2008 iis6+php5.5.7+mysql5.6 代码使用加载使用firebird.dll扩展模块 但在php.ini中已经将extension=php_pdo_firebird.dll打开 在phpinfo信息页面还是无法显示加载 经google后,有人遇到过此类的情况,解决方法如下: 下载解压Firebird-2.5.6.27020-0_x64.zip包,点击下载 将lib目录下的fbcl

php5.5以上版本编译扩展模块方法

在编译php5.5以上版本的时候发现,直接下载扩展包编译安装不太好用.其实这个版本以上的php在自身的ext的目录中已经放了不少的扩展模块,编译好了,模块就直接加载进来了.如图: 拿pdo_mysql这个模块为例,进入到这个目录中执行命令phpize,之后出现问题了 根据错误提示确定缺少了某些的包,执行命令安装这些包 yum –y install autoconf yum –y install m4 安装完这两个包之后在执行phpize后没有报错了 然后执行命令 ln -s /usr/local

ubuntu php5.6源码安装

今天又花了一天时间装了php,感觉php的源码安装也挺麻烦的,整个过程各种报错. 下篇文章准备整合所有查找到的报错和解决方法. php和nginx一样,在安装前需要装一堆的依赖.有libmcrypt.mcrypt.mhash.其实远不止这三个包,在后面的configure和make中还会陆陆续续安装一些依赖. 1.安装libmcrypt.mcrypt.mhash(整个过程都在/usr/local/src/php目录下) #创建/usr/local/src/php目录并进入mkdir /usr/l

CentOS6.5编译安装Nginx1.70 +PHP5.59+MySQL5.6.16

下载软件工具包: 1.下载nginx http://nginx.org/download/nginx-1.7.0.tar.gz 2.下载pcre (支持nginx伪静态) http://jaist.dl.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz 4.下载MySQL5.6.16 http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.16.tar.gz 5.下载php-5.5.9 ht

在CentOS/RHEL 6.2上使用YUM安装PHP5.4

核心命令 rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm    yum install php54w 以下转自样例: php5.4于2012年5月8号发布,从php5.4.0开始php加入了一些新特色如: Traits支持 内置了一个简单的Web服务器 提供了数组简短语法 直接对函数返回值进行数组取值 最终删除魔术方法及安全模式 你可以在这里看到更新日志. 这里使用 Webtatic EL6的YUM源来安装php5.4,我们首页安装Web

CentOS 编译安装php5.5, 并配制支持apach,nignx核心代码

首先是编译准备工作: yum groupinstall "Development tools" 然后是编译安装 PHP 5.5.x 需要用到的 devel 包: yum install libxml2-devel gd-devel libmcrypt-devel libcurl-devel openssl-devel 从官方下载,解压: wget http://us3.php.net/get/php-5.5.5.tar.gz/from/cn2.php.net/mirror tar -x

PHP5.2至5.6的新增功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 [注] 的 PHP5.2, 其余的一半用户在使用 PHP5.3 [注].因为 PHP 那"集百家之长"的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征. PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数

PHP-5.3.27源码安装及nginx-fastcgi配置

源码安装php cat /etc/redhat-release uname -rm wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum install -y zlib-devel libxml2-devel libjpeg-turbo-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel opens