1、太空船操作符
太空船操作符用于比较两个表达式。 当$a小于、 等于或大于$b时它分别返回-1、 0或1。

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// Floatsecho 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

2、返回值类型声明

指定返回值是整型

function f($a):int{
    return '123';
}
var_dump(f(1));

3、null合并运算符

$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';    //php5
$username = $_GET['user'] ?? 'nobody'; //php7

4、匿名类,参照匿名函数理解

(new class {
public function a(){
echo 123;
}
})->a();

5、指定函数的传参类型

function test(string $a,int $b){
echo $a,$b;
}
test('a',1);

6、传入的参数可为空(Nullable) 类型
类型现在允许为空, 当启用这个特性时, 传入的参数或者函数返回的结果要么是给定的类型, 要么是 null 。 可以通过在类型前面加上一个问号来使之成为可为空的。

function test(?string $username,int $age){
echo "姓名: {$username} -- 年龄: {$age}<hr>";
} ​
test('小明',20);
test(null,22);

7、Void函数
对于 void 函数来说, null 不是一个合法的返回值。可以不写return 或 return ; 就可以;写return null会报错。

function test() : void {
return; //表示返回void
echo 111;​
//return null; # 报错, 因为return null不能替换return;} ​
test();

8、list()支持关联数组
现在list()支持在它内部去指定键名。 这意味着它可以将任意类型的数组 都赋值给一些变量(与短数组语法类似)

​$data = [
['id' => 1, 'name' => 'Tom'],
['id' => 2, 'name' => 'jack'],
];
echo '<hr>';
​// php7.1写法
foreach($data as list('id' => $id, 'name' => $name)){
echo $id . '----' . $name . '<br>';
}

PHP7.x新特性的更多相关文章

  1. php7.0 和 php7.1新特性

    PHP7.1 新特性 1.可为空(Nullable)类型 类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null .可以通过在类型前面加上一个问号来使之成为 ...

  2. 浅谈PHP7的新特性

    我以前用过的php的最高版本是php5.6.在换新工作之后,公司使用的是PHP7.据说PHP7的性能比之前提高很多.下面整理下php7的新特性.力求简单了解.不做深入研究. 1.变量类型声明 函数的参 ...

  3. 《PHP7底层设计与源码实现》学习笔记1——PHP7的新特性和源码结构

    <PHP7底层设计与源码实现>一书的作者陈雷亲自给我们授课,大佬现身!但也因此深感自己基础薄弱,遂买了此书.希望看完这本书后,能让我对PHP7底层的认识更上一层楼.好了,言归正传,本书共1 ...

  4. [转+自]关于PHP7的新特性(涉及取反和disabled_functions绕过)

    PHP7和PHP5上的安全区别 preg_replace()不再支持/e修饰符 利用\e修饰符执行代码的后门大家也用了不少了,具体看官方的这段描述: 如果设置了这个被弃用的修饰符, preg_repl ...

  5. php7的新特性

    新增操作符1.??$username = $_GET['user'] ?? '';$username = isset($_GET['user']) ? $_GET['user'] : 'nobody' ...

  6. PHP7.1新特性一览

    PHP7.0的性能是PHP5.6的两倍 http://www.phpchina.com/article-40237-1.html 可空类型 list 的方括号简写 void 返回类型 类常量属性设定 ...

  7. PHP7.0新特性

    http://blog.csdn.net/h330531987/article/details/74364681 反射 闭包 trait 还有数组

  8. [PHP7.0-PHP7.2]的新特性和新变更

    php7发布已经升级到7.2.里面发生了很多的变化.本文整理php7.0至php7.2的新特性和一些变化. 参考资料: http://php.net/manual/zh/migration70.new ...

  9. php 7.0 新特性

    php 7 主题是性能优化  SEO 之前版本:开发效率快,语言本身性能差 普通的php网站:IO密集型,瓶颈在mysql上,体现不出来php的性能劣势,在密集计算方面比C,C++,JAVA差几十倍甚 ...

随机推荐

  1. Go语言知识点笔记

    golang的花括号: 在go中,继承了C系的花括号作为一个作用域块的包含范围指示,但不同于C/C++中花括号位置可任意摆放,go要求“ { ”必须在右侧(一行代码尾部),不能单独另起一行.类似Pyt ...

  2. sqlite3 的insert记录项思路

    sqlite3 的insert记录项思路 1.组合一个insert的sql语句 2.判断是否需要立即执行,若不是立刻执行的语句,则插入到待处理的链表中,供后续事务处理时提交.必须有一个专门线程来对事务 ...

  3. 【日记】NOIP2018

    day-2: 最后一次走出机房,刚下过几天的雨,感受到的是彻骨的寒意.下午离开教室,跟班主任请了接下来几天的假,班主任斜视了我一眼,哼了一声,确认了一下,不再理会我了.班里的同学或是忙着自己的作业,或 ...

  4. 工作常用shell集合

    <1>日志回滚案例======>[root@localhost test]# cat hbase.sh hbase_rotate_log ()       {    log=$1;  ...

  5. URIEncoding与useBodyEncodingForURI 在tomcat中文乱码处理上的区别

    大家知道tomcat5.0开始,对网页的中文字符的post或者get,经常会出现乱码现象. 具体是因为Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,这样 ...

  6. springboot配置fastjson后端往前端传输格式化

    import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.Spri ...

  7. 用HTML+CSS实现--折叠效果

    下图是一个Accordion组件,请用HTML+CSS实现其UI,并用面向对象的思路把折叠效果JS实现.如果能用纯css的方式实现其折叠效果更佳.PS/这是小米15年的一道校招笔试题,无意间看到就实现 ...

  8. AdvStringGrid 单元格字体颜色、背景颜色

    procedure TForm5.Button1Click(Sender: TObject); var I: Integer; begin AdvStringGrid1.RowCount := ;// ...

  9. DevExpress 去除皮肤的方法

    我从不用皮肤,方法如下:

  10. linux用户操作

    1.用户种类 Linux具有三种用户: 超级管理员root:具有最高权限,UID=0  GID=0伪用户(System Account):(UID=1~499)普通用户(login-Account): ...