详细分析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 相关文章推荐
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
Dec 06 PHP
一个php导出oracle库的php代码
Apr 20 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
PHP根据IP判断地区名信息的示例代码
Mar 03 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP如何解决微信文章图片防盗链
Dec 09 PHP
详解Go与PHP的语法对比
May 29 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 的 __FILE__ 常量
2007/01/15 PHP
fgetcvs在linux的问题
2012/01/15 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python中input与raw_input 之间的比较
2017/08/20 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
用python批量移动文件
2021/01/14 Python
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
String和StringBuffer的区别
2015/08/13 面试题
小学生元旦广播稿
2014/02/21 职场文书
诚信考试承诺书
2014/03/27 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
出差报告范文
2014/11/06 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
发票退票证明
2015/06/24 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
Github 使用python对copilot做些简单使用测试
2022/04/14 Python