最近、Zend の PHP7 は最終バグ修正段階にあり、RC7 がアップデートされました。Zend の公式発表によると、PHP7 のパフォーマンスは PHP5 シリーズのバージョンの約 2 倍であり、一部のバージョンでは改善されています。新しい構文が追加されました。PHP5 のパフォーマンスに影響を与えるいくつかの要素が削除され、主に次の機能が追加されました。
<!--?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)该指令必须是第一个指令而且只有一种用法
<!--?php declare(strict_types=1); function GetInt():int{ return 1.0; } echo GetInt(); ?-->上記のコードを return 1; に変更すると、正常に実行できますが、それ以外の場合は、PHP7 の強い型制約により、if 型は完全に放棄されます。
<!--?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); ?-->var_dump の結果は int(3)
<!--?php declare(strict_types=1); function add(int $a,int $b):int{ return $a+$b; } var_dump(add(1,2)); ?-->です
<!--?php declare(strict_types=1); function foobar(float $abc): int { return ceil($abc + 1); } try{ foobar(1.22); }catch(Exception $ex){ echo $ex--->getMessage(); } ?>さて、Scalar Typeについてはいちいち書きません
<!--?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; } }); ?>