PHP7.x新特性
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新特性的更多相关文章
- php7.0 和 php7.1新特性
PHP7.1 新特性 1.可为空(Nullable)类型 类型现在允许为空,当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null .可以通过在类型前面加上一个问号来使之成为 ...
- 浅谈PHP7的新特性
我以前用过的php的最高版本是php5.6.在换新工作之后,公司使用的是PHP7.据说PHP7的性能比之前提高很多.下面整理下php7的新特性.力求简单了解.不做深入研究. 1.变量类型声明 函数的参 ...
- 《PHP7底层设计与源码实现》学习笔记1——PHP7的新特性和源码结构
<PHP7底层设计与源码实现>一书的作者陈雷亲自给我们授课,大佬现身!但也因此深感自己基础薄弱,遂买了此书.希望看完这本书后,能让我对PHP7底层的认识更上一层楼.好了,言归正传,本书共1 ...
- [转+自]关于PHP7的新特性(涉及取反和disabled_functions绕过)
PHP7和PHP5上的安全区别 preg_replace()不再支持/e修饰符 利用\e修饰符执行代码的后门大家也用了不少了,具体看官方的这段描述: 如果设置了这个被弃用的修饰符, preg_repl ...
- php7的新特性
新增操作符1.??$username = $_GET['user'] ?? '';$username = isset($_GET['user']) ? $_GET['user'] : 'nobody' ...
- PHP7.1新特性一览
PHP7.0的性能是PHP5.6的两倍 http://www.phpchina.com/article-40237-1.html 可空类型 list 的方括号简写 void 返回类型 类常量属性设定 ...
- PHP7.0新特性
http://blog.csdn.net/h330531987/article/details/74364681 反射 闭包 trait 还有数组
- [PHP7.0-PHP7.2]的新特性和新变更
php7发布已经升级到7.2.里面发生了很多的变化.本文整理php7.0至php7.2的新特性和一些变化. 参考资料: http://php.net/manual/zh/migration70.new ...
- php 7.0 新特性
php 7 主题是性能优化 SEO 之前版本:开发效率快,语言本身性能差 普通的php网站:IO密集型,瓶颈在mysql上,体现不出来php的性能劣势,在密集计算方面比C,C++,JAVA差几十倍甚 ...
随机推荐
- Python基础入门(一)
1.在线教程 2.Python下载地址,安装步骤,就是next.next... 3.配置环境变量(win8) 电脑 --> 属性 --> 高级系统设置 --> 环境变量,找到系统变量 ...
- jQuery基础之二(操作标签)
一:样式操作 addClass();// 添加指定的CSS类名. removeClass();// 移除指定的CSS类名. hasClass();// 判断样式存不存在 toggleClass();/ ...
- Hibernate5笔记6--Hibernate检索优化
Hibernate检索优化: 检索即查询.为了减轻DB的访问压力,提高检索效率,Hibernate对检索进行了优化. 所谓检索优化,指的是对查询语句的执行时机进行了细致.严格的把控:并不是代码中一出现 ...
- Spring编程式和声明式事务实例讲解
Java面试通关手册(Java学习指南):https://github.com/Snailclimb/Java_Guide 历史回顾: 可能是最漂亮的Spring事务管理详解 Spring事务管理 S ...
- 畸形的 dockerfile中的COPY命令-
dockerfile中的COPY是指COPY 指定目录的“子级目录”下所有的目录和文件,到指定目录中,这个shell中的cp命令大相径庭,使得很多人纳闷,怎么cpy过去的文件不是自己想要的
- 从一份配置清单详解 Nginx 服务器配置
概述 在前面< Nginx 服务器开箱体验> 一文中我们从开箱到体验,感受了一下 Nginx 服务器的魅力.Nginx 是轻量级的高性能 Web 服务器,提供了诸如 HTTP 代理和反 ...
- 监听 手机back键和顶部的回退
// 回退事件,监听 手机back键和顶部的回退 pushHistory(); window.addEventListener("popstate", function(e) { ...
- java基础19 导包和“命令行”打jar包
1.导包 1.1.包 java中的包就相当于Windows文件夹 编译格式:javac -d . 类名.java 1.2.包的作用 1.解决了类名重复冲突的问题 2.便于软件版本的 ...
- No.11 selenium学习之路之加载浏览器插件for Firefox
打开帮助 —— 故障排除信息
- mvn本地库导入jar包
导入脚本 #!/bin/sh mvn deploy:deploy-file -DgroupId=com.xxx.xxx -DartifactId=包名 -Dversion=4.0 -Dpackag ...