浅谈PHP5.6 与 PHP7.0 区别
时间:2022-07-27
本文章向大家介绍浅谈PHP5.6 与 PHP7.0 区别,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
两者的区别
- PHP7.0 比PHP5.6性能提升了两倍。
- PHP7.0全面一致支持64位。
- PHP7.0之前出现的致命错误,都改成了抛出异常。
- 增加了空结合操作符(??)。效果相当于三元运算符。
- PHP7.0新增了函数的返回类型声明。
- PHP7.0新增了标量类型声明。
- PHP 7 中的函数的形参类型声明可以是标量。在 PHP 5 中只可以是类名、接口、array 或者 callable (PHP 5.4,即可以是函数,包括匿名函数),现在也可以使用 string、int、float和 bool 了。
- 新增加了匿名类。
- PHP 5.3 开始有了匿名函数,现在又新增了匿名类;
- PHP7.0之后溢移除了一些老的不再支持的SAPI(服务器端应用编程端口)和扩展。
- define 可以定义常量数组。
PHP标量类型
#主要分为两种模式,强制性模式和严格模式
declare(strict_types=1)
#1表示严格类型校验模式,作用于函数调用和返回语句;0表示弱类型校验模式。
返回类型声明
PHP 7 增加了对返回类型声明的支持。 类似于参数类型声明,返回类型声明指明了函数返回值的类型。
<?php
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
NULL合并运算符
如果变量存在且值不为NULL, 它就会返回自身的值,否则返回它的第二个操作数。
$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#简写成
$site = $_GET['site'] ??'wo';
太空船操作符(组合比较符)
太空船操作符用于比较两个表达式。当a小于、等于或大于b时它分别返回-1、0或1
<?php
// 整数
echo 1 <= 1; // 0
echo 1 <= 2; // -1
echo 2 <= 1; // 1
// 浮点数
echo 1.5 <= 1.5; // 0
echo 1.5 <= 2.5; // -1
echo 2.5 <= 1.5; // 1
// 字符串
echo "a" <= "a"; // 0
echo "a" <= "b"; // -1
echo "b" <= "a"; // 1
?
通过 define() 定义常量数组
*使用define()定义常量数组
<?php
define('ANIMALS', [
'dog',
'cat',
'bird'
]);
echo ANIMALS[1]; // 输出 "cat"
?
使用define()定义常量
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
?
使用关键字 const 定义常量
<?php
const CONSTANT = 'Hello World';
echo CONSTANT;
?
匿名类
PHP7 支持持通过new class 来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义。
<?php
interface Logger {
public function log(string $msg);
}
class Application {
private $logger;
public function getLogger(): Logger {
return $this- logger;
}
public function setLogger(Logger $logger) {
$this- logger = $logger;
}
}
$app = new Application;
$app- setLogger(new class implements Logger {
public function log(string $msg) {
echo $msg;
}
});
var_dump($app- getLogger());
?
输出:
object(class@anonymous)#2 (0) {
}
参考
新特性
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 苹果就“降速门”致歉;央行批扫码支付不正当竞争;王健林旗下公司遭集体裁员
- 姚期智教授:量子计算是千亿万亿级别的产业,或成为科技创新的引擎
- Powershell中禁止执行脚本解决办法
- 使用AsyncTask异步更新UI界面及原理分析
- 商家为何要做小程序?
- Android中关于dip和px以及转换的总结
- Python介绍
- python案例-用户登录
- 推荐个找代码示例的VS 插件 All-In-One Code Framework Sample Browser
- 明星推出定制AI形象,虚拟形象有何优势
- apache工作模式梳理
- Mysql的二进制日志binlog的模式说明
- Git版本控制器使用总结性梳理
- “黑科技”人脸识别 TA和你的距离不是一般的近
- 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
- 一个老程序员的30年生涯回顾
- 经典 90 坦克大战 Python 版实现(支持单双人模式)
- Python 基础(十六):迭代器与生成器
- MySQL information_schema详解 COLUMNS
- MySQL information_schema详解 COLUMN_PRIVILEGES
- 一分钟学Python|Python的字典
- MySQL information_schema详解 ENGINES
- 一日一技:不用轮询,基于事件监控文件变动
- Python 基础(十七):装饰器
- XtraBackup工具详解 Part 10 使用innobackupex对数据库进行部分备份(指定表或数据库)
- Python 基础(十九):数学相关模块
- XtraBackup工具详解 Part 11 使用innobackupex对部分备份进行恢复
- XtraBackup工具详解 Part 12 流式和压缩备份
- 基于STM32+RT-Thread的新冠肺炎疫情监控平台
- Python 基础(二十):sys 模块