详细分析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 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php中使用Akismet防止垃圾评论的代码
Jun 10 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
PHP Web木马扫描器代码分享
Sep 06 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
Smarty保留变量用法分析
May 23 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
php数组转成json格式的方法
2015/03/09 PHP
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
如何通过python计算圆周率PI
2020/11/11 Python
荷兰家电销售网站:Welhof
2020/12/08 全球购物
Linux操作面试题
2012/05/16 面试题
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
揭牌仪式主持词
2014/03/19 职场文书
离婚协议书范文2014
2014/10/16 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
财务管理制度范本
2015/08/04 职场文书
团支部书记竞选稿
2015/11/21 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python