PHP7是大势所趋了。PHP7有更多的新特性,更好的性能,更高的速度。并且,从今年8月7日开始发行PHP7.0的beta3 即将发布的PHP7 的RC1版本。脚步越来越近,有更多的人来学习PHP7的新特性。PHP学院将对PHP7的新特性进行连载。
并且,现在国内PHPer中喜欢尝新鲜的人一些人,已经安装好了PHP7。我们来看看PHP7 到底有哪些新特性。
今天我们来讲解的是PHP提倡的一些风格,并且将原有PHP4当中的一些风格进行了禁用。
1,PHP5发行的时候为了讨好ASP程序员,PHP准备了asp_tags全部被禁止
在未来没有 这种风格,PHP也不再支持这种风格的声明。
2,PHP4的语法风格中的一些东西将被,例如构造函数的用法,会在新的PHP7中完全被抛弃。PHP7将会提示一个:E_DEPRECATED的错误提示。
//方法名类名相同的构造函数的用法不再兼容 functionfoo() { echo'I am the constructor'; } }?>
3. define定义常量不仅仅只支持标量,还支持了数组
4.比较的时候支持<=> 可以比较字符串,数组,整型。
<?php // Integersecho1<=>1;// 0echo1<=>2;// -1echo2<=>1;// 1
PHP学院评:我们认为实际用户不大,在实际工作中使用量不会很高
5.在PHP7 中支持了 函数的强制参数类型指定
//本例中会输出9,你想想为什么哟?——因为强制规定为了整型
PHP学院评:function funcName(... 参数) 是PHP5.6开始支持的。不要认为是PHP7里的知识点
6. 返回类型也在强制进行规定
functionarraysSum(array ...$arrays): array { returnarray_map(function(array$array):int{ returnarray_sum($array); },$arrays); }print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
7. 新建了call方法在外部来调用,更短的方式将匿名函数,追加进对向中且完成调用
classA{private$x=1;}// Pre PHP 7 code$getXCB= function() {return$this->x;};$getX=$getXCB->bindTo(newA,'A');// intermediate closureecho$getX();// PHP 7+ code$getX= function() {return$this->x;}; echo$getX->call(newA);
8. 成员方法中也可以规定必须要返回某个类类型
classA{} classBextendsA{} classC{ public functiontest() :A{ return newA; } }
PHP删除了一些函数,其中是吓人的是两个:
17. ereg_* 系列的正则函数
18. mysql_* 系列的数据库连接函数
PHP7全面删除Mysql扩展支持,原本的mysql_*系列函数将在mysql中不再得到支持。所以说,如果你的应用系统还是使用的是mysql_*系列的函数来连接数据库,请尽快升级你的mysql系列的函数。
我们来看看,PHP7 删除的扩展到底有哪些:
1. ereg
2. mssql
3. mysql
4. sybase_ct
替代处理和解决方案:
一、 如果你要连接微软的sql server数据库请使用PDO方案来代规
二、 如果你使用的mysql系列函数扩展来连接数据库,请采用效率更高的mysql_nd系列函数。他具有更高的效率
三、 如果你采用的是ereg 系列,尽快改吧。
四、sybase_ct 全面改为sybase*系列吧