截止到目前為止,PHP官方已經(jīng)發(fā)布了php7的RC5版本,預(yù)計在11月份左右會發(fā)布第一個正式版本!現(xiàn)在來說php7的重大特性肯定已經(jīng)是定型了,不會再有什么變動了。后續(xù)一些版本的迭代主要也就是修修bug,優(yōu)化之類的。下面就來說話我們一直期待的php7.0新特征吧。
1.標量參數(shù)類型聲明
現(xiàn)在支持字符串(string)、整型(int)、浮點數(shù)(float)、及布爾型(bool)參數(shù)聲明,以前只支持類名、接口、數(shù)組及Callable
兩種風格:強制轉(zhuǎn)換模式(默認)與嚴格模式
1
2
3
4
5
6
7
|
<?php // Coercive mode function sumOfInts(int ... $ints ) { return array_sum ( $ints ); } var_dump(sumOfInts(2, '3' , 4.1)); |
2.返回類型聲明
1
2
3
4
5
6
7
8
|
<?php function arraysSum( array ... $arrays ): array { return array_map ( function ( array $array ): int { return array_sum ( $array ); }, $arrays ); } print_r(arraysSum([1,2,3], [4,5,6], [7,8,9])); |
3.??運算符
?? 用于替代需要isset的場合,這是一個語法糖。
1
2
3
4
5
6
7
8
9
10
|
<?php // Fetches the value of $_GET['user'] and returns 'nobody' // if it does not exist. $username = $_GET [ 'user' ] ?? 'nobody' ; // This is equivalent to: $username = isset( $_GET [ 'user' ]) ? $_GET [ 'user' ] : 'nobody' ; // Coalescing can be chained: this will return the first // defined value out of $_GET['user'], $_POST['user'], and // 'nobody'. $username = $_GET [ 'user' ] ?? $_POST [ 'user' ] ?? 'nobody' ; |
4.<=> 比較運算符
就是看兩個表達式值的大小,三種關(guān)系: = 返回0、< 返回-1、 > 返回 1
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php // Integers echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // Floats echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // Strings echo "a" <=> "a" ; // 0 echo "a" <=> "b" ; // -1 echo "b" <=> "a" ; // 1 |
5.define支持定義數(shù)組類型的值
php 5.6已經(jīng)支持CONST 語法定義數(shù)組類的常量,PHP7中支持define語法。
1
2
3
4
5
6
7
|
<?php define( 'ANIMALS' , [ 'dog' , 'cat' , 'bird' ]); echo ANIMALS[1]; // outputs "cat" |
6.匿名類
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php interface Logger { public function log(string $msg ); } class Application { private $logger ; public function getLogger(): Logger { return $this ->logger; } public function setLogger(Logger $logger ) { $this ->logger = $logger ; } } $app = new Application; $app ->setLogger( new class implements Logger { public function log(string $msg ) { echo $msg ; } }); var_dump( $app ->getLogger()); |
7.增加了整除函數(shù) intdiv
小結(jié):
PHP 7在性能方面的突破成為近來最熱門的話題之一,目前官方PHP 7.0.0 Beta 2已經(jīng)發(fā)布
性能提升:PHP 7要比PHP 5.6快兩倍
全面一致的64位支持
移除了一些老的不在支持的SAPI(服務(wù)器端應(yīng)用編程端口)和擴展
新增了空接合操作符(??)