广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >详细分析PHP7与PHP5区别
  • 862
分享到

详细分析PHP7与PHP5区别

2024-04-02 19:04:59 862人浏览 泡泡鱼
摘要

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

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 移除的扩展

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

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

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

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

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

--结束END--

本文标题: 详细分析PHP7与PHP5区别

本文链接: https://www.lsjlt.com/news/129183.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详细分析PHP7与PHP5区别
    1、php标量类型和返回类型声明 #主要分为两种模式,强制性模式和严格模式 declare(strict_types=1) #1表示严格类型校验模式,作用于函数调用和返回语句;0...
    99+
    2022-11-12
  • php7与php5有哪些区别
    这篇文章主要介绍了php7与php5有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。...
    99+
    2023-06-14
  • php7与php5的区别是什么
    本文操作环境:windows10系统、php 7&&php 5、thinkpad t480电脑。相信一定有很多小伙伴都有过这样的疑惑,php5和php7之间有什么区别么?php7想对于php5增加或删除了哪些东西?下面我就来...
    99+
    2020-09-07
    php 7 php 5 区别
  • Java getRealPath("/")与getContextPath()区别详细分析
    一.以下是在servlet中测试的。 二.运行结果如下(其中myfile文件夹是不存在的)。 三.总结。 1.getRealPath("/")方法返回的是项目在服务器的绝对路径,...
    99+
    2022-11-12
  • access与trunk详细解析+区别
    目录 一、Access 二、Trunk 三、区别: 四、额外说明: 一、Access Access只能属于一个vlan,一般用来连接计算机的端口Access接受和转发的数据包必是无VID的数据包Access端口发送出去的数据包无VID,...
    99+
    2023-09-14
    网络 服务器 tcp/ip 网络协议 网络安全
  • iostream与iostream.h的区别详细解析
    C++的标准类库被修订了两次,有两个标准 C92和C99,这两个库现在都在并行使用,用 .h 包含的是c92 ,不带 .h 的是c99的头文件,对于普通用户来说这两者没有什么区别,区...
    99+
    2022-11-15
    iostream.h iostream
  • CreateThread()与beginthread()的区别详细解析
    我们知道在Windows下创建一个线程的方法有两种,一种就是调用Windows API CreateThread()来创建线程;另外一种就是调用MSVC CRT的函数_beginth...
    99+
    2022-11-15
    beginthread CreateThread
  • char str[] 与 char *str的区别详细解析
    复制代码 代码如下:char* get_str(void)  {      char str[] = {"abcd"}; ...
    99+
    2022-11-15
    char_str
  • C++中继承与组合的区别详细解析
    C++的“继承”特性可以提高程序的可复用性。正因为“继承”太有用、太容易用,才要防止乱用“继承”。我们要给“继承”立一些使用规则: 一、如果类A 和类B 毫不相关,不可以为了使B 的...
    99+
    2022-11-15
    继承 组合
  • 变量定义与声明的区别详细解析
    我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下: 变量的声明有两...
    99+
    2022-11-15
    变量
  • C++标准库中sstream与strstream的区别详细解析
    在C++有两种字符串流,一种在sstream中定义,另一种在strstream中定义。它们实现的东西基本一样。 strstream里包含class strstreambuf;clas...
    99+
    2022-11-15
    C++标准库 sstream strstream
  • 详细解析MariaDB与MySQL两个数据库的区别
    主要区别介绍 ●  发行版:MariaDB 是 MySQL 的一个分支,MySQL是 Oracle 公司的产品。 ●  开发公司:MariaDB 由 MariaDB 基金会和社区维护,MySQL 由 Oracle 公司维护。 ●  开发重点...
    99+
    2023-09-05
    数据库 mysql mariadb
  • Java详细解析==和equals的区别
    目录1、== 解析2、equals 方法解析3、equals方法具有以下特性1、== 解析 == 常用于相同的基本数据类型之间的比较,也可用于相同类型的对象之间的比较; 如...
    99+
    2022-11-13
  • exit和atexit的区别详细解析
    一、exit()函数函数声明:void exit(int state);exit()函数用于在程序运行的过程中随时结束程序,exit的参数state是返回给操作系统,返回0表示程序正...
    99+
    2022-11-15
    exit atexit
  • Java详细分析sleep和wait方法有哪些区别
    目录一、sleep和wait方法的区别二、wait方法wait方法的使用wait结束等待的条件三、notify和notifyAll方法一、sleep和wait方法的区别 根本区别:s...
    99+
    2022-11-13
  • TypeScript与JavaScript的区别分析
    目录TypeScript优势TypeScript 与 JavaScript 的区别TypeScript基本语法TypeScript原始类型1.字符串2.数字3.布尔值4.S...
    99+
    2022-12-30
    TypeScript JavaScript
  • Java中printf与println的区别(最详细)
    在Java中,printf和println都是用于在控制台输出文本的方法,但是它们之间有一些不同之处。 目录 一:printf 二:println 三:printf与println的区别 一:printf printf是一个格式化输出方法...
    99+
    2023-09-30
    java jvm 开发语言
  • 枚举和宏的区别详细解析
    枚举常量与宏的区别主要有几点: 1。枚举常量是实体中的一种,但宏不是实体; 2。枚举常量属于常量,但宏不是常量; 3。枚举常量具有类型,但宏没有类型,枚举变量具有与普通变量相同的诸如...
    99+
    2022-11-15
    枚举
  • vector,map,list,queue的区别详细解析
    1。vector  (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够的...
    99+
    2022-11-15
    vector map list queue
  • 分析详解python多线程与多进程区别
    目录1 基础知识1.1 线程1.2 进程1.3 两者的区别2 Python 多进程2.1 创建多进程方法1:直接使用Process方法2:继承Process来自定义进程类,重写run...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作