性能的提升

可以分别通过php5.6和php7,对源码下的zend目录下的bench.php文件和micro_bench.php文件进行测试,会发现php7的执行速度明细的提高。

太空船的操作符

操作符号<=>就很像太空船,该操作符可可以用于快速的比较大小,不过感觉平时用的很少

echo 1 <=> 0; // 1,左边大于右边1
echo 1 <=> 1; // 0,左边等于右边0
echo 1 <=> 2; // -1,左边

标量类型申明

在团队合作的时候,我们经常想要说我们写的方法,需要调用者严格按照我们的规范来调用,避免一些问题,所以就需要对参数进行严格的限制

// 这个必须写,不然如果传入其它类型还是不会报错
declare(strict_types=1);

$page = isset($_GET['page']) ? $_GET['page'] : 1;
$page = $_GET['page'] ?? 1;

null合并运算符

$age = $user->age??0;

类型提示前面带问号

类型前面的问号表示参数或返回值可为空(null)。例如,?string $str 表示 $str 的值可以为 null 或 字符串。
此用法不只局限于静态类型,类和接口也可使用,例如,?MyInterface

// 参数前面?
public function register(?string $mobile = null);
// 返回结果?
public function getPlatformUserAttribute(): ?UserMappingModel

箭头函数

以fn开头,只能一个返回值表达式$post->id,后面可以带有参数$posts

$posts = [/* … */];
$ids = array_map(fn($post) => $post->id, $posts);
最后修改:2024 年 05 月 20 日
如果觉得我的文章对你有用,请随意赞赏