## 新特性
### 太空船操作符
1. 用于比較兩個表達式,當$a小于/等于/大于$b時,分別返回-1/0/1。比較原則沿用php常規比較規則。
2.
```
echo 1 <=> 1; //0
echo 1 <=> 2; //-1
echo 1 <=> 0; //1
```
### 標量類型聲明和返回值的類型聲明
1. 可對[string,int,float,bool]參數進行聲明。默認模式下,傳入參數不符合聲明類型,會首先嘗試轉換類型;嚴格模式下直接報錯。
2.
```
declare(strict_types = 1); //開啟嚴格模式
function sum(int ...$ints) : int {
return array_sum($ints);
}
var_dump(sum(2,4,4));
```
3. 函數返回值聲明可以定義為void,則無論是否嚴格模式,只要函數中有其他`return;`以外的return語句都會報錯。
```
function sum(int ...$ints) : void {
return;
return array_sum($ints);
/會報錯
}
var_dump(sum(2,4,4));
```
4. 在參數或返回值類型聲明前加`?`表示返回值可以是null或者聲明的類型
### null合并操作符
1. 如果變量存在且值不為null,返回自身的值,否則返回第二個操作數.
2. `$page = $_GET['page'] ?? 0`;
3. 如果有連續的三元運算符還可以這樣寫`$page = $_GET['page'] ?? $_POST['page'] ?? 0`
### 常量數組
```
define('ANIMALS', [
'dog',
'cat',
'bird'
]);
print_r(ANIMALS);
```
### namespace批量導入
`use Space\{ClassA, ClassB, ClassC as C}`
### throwable接口
1. 實現了全局throwable接口,原來的Exception和部分Error實現了該接口。這種Error可以像Exception一樣被第一個匹配的try/catch捕獲,如果沒有匹配的catch塊,則調用異常處理函數處理。如未注冊異常處理函數,則按照傳統方式處理(fatal error)
2.
```
try {
undefindfunc();
} catch (Error $e) {
var_dump($e);
}
```
或者
```
set_exception_handler(function($e) {
var_dump($e);
});
undefindfunc();
```
### Closure::call()
1. 暫時綁定一個閉包對象到$this對象并調用他
```
class Test {
private $num = 1;
}
$f = function() {
return $this->num + 1;
};
echo $f->call(new Test); //2
```
### intdiv整除函數
`var_dump(intdiv(10, 3));`
### list的方括號寫法
```
$arr = [1,2,3];
// list($a, $b, $c) = $arr;
[$a, $b, $c] = $arr;
var_dump($a, $b, $c);
```
- php
- 安全
- php7
- 特性
- 編譯安裝
- 源碼整體框架
- 基本變量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制臺
- eloquent
- tinker
- composer
- 加密解密
- 小知識點
- 數組
- string
- 代碼簡潔之道
- 編譯
- 語法糖
- lumen
- smarty
- 錯題集
- 算法及數據結構
- 線性表結構
- 插入排序
- 冒泡排序
- 數據庫
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 備忘
- js
- nodejs
- vue
- css
- electron
- vue
- 語法糖
- colorui使用筆記
- 微信小程序
- 操作系統
- windows
- bat
- 快捷鍵
- linux
- sed
- 問題解決
- git
- docker
- docker-compose
- 正則表達式
- ps
- lua
- 協議相關
- 問題思索
- Golang
- 測試
- 讀取和寫入json配置文件
- 類
- 接口
- mod
- gin
- fyne
- 禪道二次開發
- 服務
- apache
- 漏洞配置
- http server優化
- nginx
- 安裝
- 面試題庫
- freeswitch