## 新特性
### 太空船操作符
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