最近Zend的PHP7已经 处于最后的BUG修复阶段,目前 已经更新RC7,对于Zend官方的说法PHP7的性能大约相比PHP5系列版本 提高2倍以上,增加了一些新的语法,摒弃了PHP5的一些影响性能的因素,主要增加了以下Features 。
<!--?php function microtime_float() { list($usec, $sec) = explode( , microtime()); return ((float)$usec + (float)$sec); } define('ARRAY_SIZE',20000); function QuickSort($arr,$low,$high) { if($low-->$high) return ; $begin=$low; $end=$high ; $key=$arr[$begin]; while($begin<$end) { while($begin<$end&&$arr[$end]>=$key) --$end ; $arr[$begin]=$arr[$end]; while($begin<$end&&$arr[$begin]<=$key) ++$begin; $arr[$end]=$arr[$begin]; } $arr[$begin]=$key; QuickSort($arr,$low,$begin-1); QuickSort($arr,$begin+1,$high); } $time_start = microtime_float(); $arr=array(); for($i=0;$i</array_size;$i++)>
PHP7新增四个标量类型 int
, float
, string
bool, 首先要使用强类型 必须在文件中加入指令
declare(strict_types=1)该指令必须是第一个指令而且只有一种用法
所谓严格类型强类型的概念就是,我们要摒弃PHP5.6之前的若类型观念,因为我们知道PHP本身一门若类型语言,正因为如此在类型转换已经类型检查导致PHP语言本身性能极为低下php7的这一举动 也证明了这一点,例如下面代码
<!--?php declare(strict_types=1); function GetInt():int{ return 1.0; } echo GetInt(); ?-->
<!--?php declare(strict_types=1); function GetInt():int{ return 1; } echo GetInt(); ?-->
<!--?php declare(strict_types=1); function add(int $a,int $b):int{ return $a+$b; } echo add(1,2); ?-->
<!--?php declare(strict_types=1); function add(int $a,int $b):int{ return $a+$b; } var_dump(add(1,2)); ?-->var_dump的结果是 int(3)
<!--?php declare(strict_types=1); function foobar(float $abc): int { return ceil($abc + 1); } try{ foobar(1.22); }catch(Exception $ex){ echo $ex--->getMessage(); } ?>
<!--?php declare(strict_types=1); class Foo {public function M1(){echo 'hello,world!';}} $child = new class extends Foo { public function M2(){echo 'hello,world!';return $this;}}; $child--->M2()->M1(); ?>
<!--?php declare(strict_types=1); var_dump(new class(5) { public function __construct($i) { $this--->i = $i; } }); ?>