详细分析PHP7与PHP5区别


Posted in PHP onJune 26, 2021

1、php标量类型和返回类型声明

#主要分为两种模式,强制性模式和严格模式
declare(strict_types=1)
#1表示严格类型校验模式,作用于函数调用和返回语句;0表示弱类型校验模式。

2、NULL合并运算符

$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
#简写成
$site = $_GET['site'] ??'wo';

3、组合预算符

// 整型比较
print( 1 <=> 1);print(PHP_EOL);
print( 1 <=> 2);print(PHP_EOL);
print( 2 <=> 1);print(PHP_EOL);
print(PHP_EOL); // PHP_EOL 为换行符
//结果:
0
-1
1

4、常量数组

// 使用 define 函数来定义数组
define('sites', [
   'Google',
   'Jser',
   'Taobao'
]);

print(sites[1]);

5、匿名类

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; 
// 使用 new class 创建匿名类 
$app->setLogger(new class implements Logger { 
   public function log(string $msg) { 
      print($msg); 
   } 
}); 

$app->getLogger()->log("我的第一条日志");

6、Closure::call()方法增加,意思向类绑定个匿名函数

<?php 
class A { 
    private $x = 1; 
} 

// PHP 7 之前版本定义闭包函数代码 
$getXCB = function() { 
    return $this->x; 
}; 

// 闭包函数绑定到类 A 上 
$getX = $getXCB->bindTo(new A, 'A');  

echo $getX(); 
print(PHP_EOL); 

// PHP 7+ 代码 
$getX = function() { 
    return $this->x; 
}; 
echo $getX->call(new A); 
?>

7、CSPRNG(伪随机数产生器)。

PHP 7 通过引入几个 CSPRNG 函数提供一种简单的机制来生成密码学上强壮的随机数。

random_bytes() - 加密生存被保护的伪随机字符串。

random_int() - 加密生存被保护的伪随机整数。

8、异常

PHP 7 异常用于向下兼容及增强旧的assert()函数。

9、use 语句改变

#可以导入同一个namespace下的类简写
use some\namespace\{ClassA, ClassB, ClassC as C};

10、Session 选项

//1.session_start()可以定义数组
<?php
session_start(&#91;
   'cache_limiter' => 'private',
   'read_and_close' => true,
]);
?>
//2.引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为 true,意味着session数据只在发生变化时才写入。

11、PHP 7 移除的扩展

  • ereg
  • mssql
  • mysql
  • sybase_ct

为什么 PHP7 比 PHP5 性能提升了?

1、变量存储字节减小,减少内存占用,提升变量操作速度

2、改善数组结构,数组元素和hash映射表被分配在同一块内存里,降低了内存占用、提升了 cpu 缓存命中率

3、改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率

到此这篇关于详细分析PHP7与PHP5区别的文章就介绍到这了,更多相关PHP7与PHP5区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
需要注意的几个PHP漏洞小结
Feb 05 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
PHP中soap的用法实例
Oct 24 PHP
php遍历目录方法小结
Mar 10 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 PHP
laravel添加角色和模糊搜索功能的实现代码
一文搞懂php的垃圾回收机制
PHP中strval()函数实例用法
Jun 07 #PHP
使用php的mail()函数实现发送邮件功能
PHP实现rar解压读取扩展包小结
Jun 03 #PHP
详解Laravel制作API接口
May 31 #PHP
浅谈PHP7中的一些小技巧
May 29 #PHP
You might like
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
php微信支付接口开发程序
2016/08/02 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
Laravel框架学习笔记之批量更新数据功能
2019/05/30 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python多进程fork()函数详解
2019/02/22 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
Python实现随机爬山算法
2021/01/29 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
采购部经理岗位职责
2014/02/10 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
青春雷锋观后感
2015/06/10 职场文书
学生会招新宣传语
2015/07/13 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android