程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP7新增 功能,php7新增功能

PHP7新增 功能,php7新增功能

編輯:關於PHP編程

PHP7新增 功能,php7新增功能


php7發布已有半月,最近有時間了解一下php7的新特性,當然,這個版本最大的特點是性能的提升。在下並非高手,歡迎大家指出錯誤,同時期待共同交流

1.在use語句增加了group支持
use FooLibrary\Bar\Baz\{ ClassA, ClassB, ClassC, ClassD as Fizbo };


2.增加??操作符
isset($_GET['mykey']) ? $_GET['mykey'] : ""笨重
$_GET['mykey'] ?: "" 當mykey不存在時會報一個E_NOTICE
$_GET['mykey'] ?? 'defaultvalue' 安全不會報E_NOTICE
$username = $_GET['user'] ?? 'nobody';

 

3. 64位PHP7字符串長度可以超過2^31次方字節。

 

4.增加Closure::call支持
Closure::call將一個閉包函數動態綁定到一個新的對象實例並調用執行該函數,

 1 <?php
 2 class Value {
 3 protected $value;
 4 
 5 public function __construct($value) {
 6 $this->value = $value;
 7 }
 8 
 9 public function getValue() {
10 return $this->value;
11 }
12 }
13 
14 $three = new Value(3);
15 $four = new Value(4);
16 
17 $closure = function ($delta) { var_dump($this->getValue() + $delta); };
18 $closure->call($three, 4);
19 $closure->call($four, 4);
20 ?>
21 // outputs int(7),int(8)

5.雙引號字符串和heredocs裡面支持使用\u{xxxxx}來聲明unicode字符。

 

6.define對數組的支持

1 define('ANIMALS', array(
2 'dog',
3 'cat',
4 'bird'
5 ));
6 echo ANIMALS[1]; // outputs "cat"

 

7.增加比較運算符<=>
$a <=> $b
如果a等於b則為0
如果a大於b則為1
如果a小於b則為-1

 

8.php全局保留字可以聲明使用

1 class View {
2     public function include(View $view) {
3         //...
4     }
5 }

include關鍵字可以當普通字符串關鍵字一樣被使用

 

9.標量類型(int,float,string,bool)支持
增加declare(strict_types=1)指令聲明是否嚴格類型校驗,
當在文件頭聲明declare(strict_types=1)

1 <php
2 
3 declare(strict_types=1);
4 function add(float $a, float $b): float {
5     return $a + $b;
6 }
7 add(1, 2); // float(3)

以上代碼如果不開啟declare(strict_types=1)或許declare(strict_types=0),php將自動轉換參數和返回值到指定類型,
開啟declare(strict_types=1),如果參數類型不是flaot或許返回類型不是float則拋出錯誤

 

10.增加接口為用戶層提供安全方便的隨機數生成器。RFC: https://wiki.php.net/rfc/easy_userland_csprng (後續再議)

11.增加了yield from 操作符。https://wiki.php.net/rfc/generator-delegation (後續再議)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved