可空型別
可空型別主要用於引數型別宣告和函式返回值宣告。
主要的兩種形式如下:
function answer(): ?int
foo_nullable(new bar); // 可行
foo_nullable(null); // 可行
foo_nullable(); // 不可行
但是如果以上函式的引數定義為 ?bar $bar = null 的形式,則第三種寫法也是可行的。因為 = null 實際上相當於 ? 的超集,對於可空型別的引數,可以設定 null 為預設值。
list 的方括號簡寫
我們知道在 php5.4 之前只能通過 array() 來定義陣列,5.4之後新增了 的簡化寫法(省略了5個字元還是很實在的)。
// 5.4 之前
$array = array(1, 2, 3);
$array = array("a" => 1, "b" => 2, "c" => 3);
// 5.4 及之後
$array = [1, 2, 3];
$array = ["a" => 1, "b" => 2, "c" => 3];
引申到另外乙個問題上,如果我們要把陣列的值賦值給不同的變數,可以通過 list 來實現:
list($a, $b, $c) = $array;
是否也可以通過 的簡寫來實現呢?
[$a, $b, $c] = $array;
["a" => $a, "b" => $b, "c" => $c] = $array;
php7.1 實現了這個特性。但是要注意的是:出現在左值中的 並不是陣列的簡寫,是 list() 的簡寫。
但是並不僅僅如此,新的 list() 的實現並不僅僅可以出現在左值中,也能在 foreach 迴圈中使用:
foreach ($points as ["x" => $x, "y" => $y]) catch (exceptiontype1 $e) catch (exceptiontype2 $e) catch (\exception $e) catch (exceptiontype1 | exceptiontype2 $e) catch (\exception $e) {
對於異常的處理簡化了一些。
PHP7 1安裝yaf擴充套件
php71安裝yaf擴充套件 把php命令加到系統 安裝我的php安裝目錄是 usr local webserver php,所以phpize是 usr local webserver php bin phpize,但是考慮到以後可能會用到其他命令,所以一次把該目錄下的檔案都做了乙個軟鏈結 ln u...
php7 1 安裝swoole擴充套件
centos linux release 7.3.1611 core php 7.0.22 cli built aug 9 2017 18 23 24 nts mysql ver 15.1 distrib 5.5.52 mariadb,for linux x86 64 using readline ...
php7 1安裝swoole擴充套件
在已經編譯好安裝的php7.1中安裝swoole擴充套件。wget c二 解壓swoole包 tar xzvf swoole 4.2.1.tgz cd swoole 4.2.1 三 生成configure配置檔案 usr local php bin phpize四 指定php配置檔案進行預編譯 co...