PHP7新特性总结
现如今,随着php的门槛越来越高,光会做不会说已经无法满足现在的面试官口味了。这不,天天用着php7,平时用着php7的语法,但是临到头不知道
对比php5有哪些新特性,着实有点尴尬了。现在呢,我们抽个时间来总结下。
1.类型的声明。
可以使用字符串(string)、整数、浮点、布尔值来声明函数的参考类型和返回值
declare(strict_types=1); ====> 必须放在文件的第一行
function add(int $a,int $b): int{
return $a+$b;
}
echo add(1,2); ====> 输出3
echo add(1.5,2.5); =====> 抛出错误异常
2.新增操作符<=>。俗称太空船运算符
新增加的太空船运算符(组合比较符<=>)用于比较两个表达式 $a 和 $b,如果 $a 小于、等于或大于 $b时,它分别返回-1、0或1。
1 <=> 2 左边小于右边 输出=====> -1
1 <=> 1 左边等于右边 输出=====> 0
2 <=> 1 左边大于右边 输出=====> 1
3.新增操作符 ?? 。
这个可以说对于大家而言,php7刚出的时候就已经很熟悉了 。左右相当于 isset
比如
$a = isset($_GET['user']) ? $_GET['user] : 0; ======> $a = $_GET['user'] ?? 0;
4.define 可以定义常量数组了
define('ARR',4); =========> define('ARR',[10,30]); echo ARR[0]; 输出10
5.支持匿名函数了
这点有点向python靠拢,python也是支持匿名函数的
python3写法:
lambda arg1, arg2: arg1 + arg2 # arg1, arg2可以传入默认值得到arg1+arg2的合
php写法:
$anonymous_func = function (){return '2222';};
echo $anonymous_func(); 输出=======> 2222
5.命名空间优化
以前写法:
use Admin\Bar\ClassA;
use Admin\Bar\ClassB;
现在写法:
use Admin\Bar\{ClassA,ClassB}
常用的就是上面5点,那么废弃了哪些呢,这里我们还是描述常用的。
我们知道做微信公众号时,扫描带参二维码时,我们通常使用:
$HTTP_RAW_POST_DATA ======> $GLOBALS['HTTP_RAW_POST_DATA']来获取数据,现在php7已经不支持了,
目前我使用的是
file_get_contents("php://input"); 来替代它了
原文地址:https://www.cnblogs.com/wujf-myblog/p/15381376.html
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- springboot开发之引入资源并实现跳转到登录界面
- java之==操作符和equals操作符
- LeetCode | 24.两两交换链表中的节点
- java之单例设计模式
- Nginx | Nginx的介绍和安装
- 真特么激动第一个爬虫----爬取豆瓣电影top250
- LeetCode | 141.环形链表
- LeetCode | 20.有效的括号
- springboot开发之实现登录功能
- springboot开发之国际化(中英文切换)
- LeetCode | 225.用队列实现栈
- springboot开发之显示员工信息
- LeetCode | 232.用栈实现队列
- springboot开发之thymeleaf页面公共元素的抽取
- Redis | Redis 通用命令