PHP7中新添特性整理

对于版本更新,在各个软件中都有所涉及,目的是针对现有版本不足的地方做一些优化。我们对于php也经历了不少的版本,在最近的php7增加了一些以往锁没有的特性,如类型声明、操作符和其他特性。下面我们就php7新增的特性分别进行介绍,大家一起来看看都有哪些。

1.标量类型声明

在php5中,有类名,接口,数组 和回调函数。在php7中,增加了字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool)。下面我们来举例子,万事万物看例子

function typeInt(int $a){

echo $a;}typeInt('sad');// 运行,他讲会报错 Fatal error: Uncaught TypeError: Argument 1 passed to type() must be of the type integer, string given

在这里,我们定义了$a 必须为int类型,如果 type 函数里面传了string 所以报错。让我们修改上述的代码就没错了

function typeString(string $a){
echo $a;}typeString('sad'); //sad

2.新增操作符“<=>”

语法:

$c = $a <=> $b

如果$a > $b, $c 的值为1

如果$a == $b, $c 的值为0

如果$a < $b, $c 的值为-1

3.新增操作符“??”

如果变量存在且值不为NULL, 它就会返回自身的值,否则返回它的第二个操作数。

//原写法
$username = isset($_GET['user]) ? $_GET['user] : 'nobody';
//现在

4.其他特性

常数数组

switch中的多个default默认值被移除,使用多个default默认值将会抛出异常

Session_start函数中,增加配置项

Unserialize函数引入过滤器

到此这篇关于PHP7中新添特性整理的文章就介绍到这了,更多相关PHP7中新添加的特性有哪几个内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • php7函数,声明,返回值等新特性介绍

    使用 ... 运算符定义变长参数函数 (PHP 5 >= 5.6.0, PHP 7) 现在可以不依赖 func_get_args(), 使用 ... 运算符 来实现 变长参数函数. <?php function f($req, $opt = null, ...$params) { // $params 是一个包含了剩余参数的数组 printf('$req: %d; $opt: %d; number of params: %d'."\n", $req, $opt, count

  • PHP7新特性简述

    类型声明 看代码,一目了然了. class person { public function age(int $age) : string { return 'Age is ' . $age; } } 命名空间与use关键字批量声明 非混合模式 use Publishers\Packt\{ Book, Ebook, Video}; use function Publishers\Packt\{ getBook, saveBook }; use const Publishers\Packt\{ C

  • php5.6.x到php7.0.x特性小结

    本文总结分析了php5.6.x到php7.0.x特性.分享给大家供大家参考,具体如下: php5.6.x到php7.0.x特性 1.标量类型声明 字符串(string), 整数 (int), 浮点数 (float), 布尔值 (bool),callable,array,self,Class/interface name 2.返回值类型声明 定义参数类型和返回值类型 function test(int $a):int{} 如果不按规定传参会返回异常 3.null合并运算符 null合并运算符 (?

  • php7新特性的理解和比较总结

    1. null合并运算符(??) 语法: 如果变量存在且值不为NULL,它就会返回自身的值,否则返回它的第二个操作数. //php7以前 if判断 if(empty($_GET['param'])) { $param = 1; }else{ $param = $_GET['param']; } //php7以前 三元运算符 $param = empty($_GET['param']) ? 1 : $_GET['param']; //PHP7 null合并运算符 $param = $_GET['p

  • PHP7 新特性详细介绍

    PHP 的学习新特性 最近做的项目使用了 php7,但感觉有很多新特性没有用起来.就想总结一下,一些可能会用到的新特性.之前使用的环境是 php5.4,所有也会有 php5.5 和 php5.6 的特性总结进来,这里只列出我觉得在项目中可能用到的特性,主要内容来自 php手册的附录. Generators (PHP 5 >= 5.5.0, PHP 7) 通过添加 yield 关键字支持了 generators,Generators 提供了一个更简单的方法实现迭代器,不需要实现 Iterator

  • 浅谈php7的重大新特性

    截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了.后续一些版本的迭代主要也就是修修bug,优化之类的.下面就来说话我们一直期待的php7会有那些主要的变化了... 新特性预览 ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG 增加抽象语法树,使编译更加科学 64位的INT支持 统一的变量语法 原声的TLS - 对扩展开发有意义 一致性foreach循环的改进 新增

  • PHP7新特性之抽象语法树(AST)带来的变化详解

    本文分析了PHP7新特性之抽象语法树(AST)带来的变化.分享给大家供大家参考,具体如下: 这里大部分内容参照 AST 的 RFC 文档而成:https://wiki.php.net/rfc/abstractsyntaxtree,为了易于理解从源文档中节选部分进行介绍. 本文并不会告诉你抽象语法树是什么,这需要你自己去了解,这里只是描述 AST 给 PHP 带来的一些变化. 新的执行过程 PHP7 的内核中有一个重要的变化是加入了 AST.在 PHP5中,从 php 脚本到 opcodes 的执

  • PHP7新特性foreach 修改示例介绍

    一.foreach()循环对数组内部指针不再起作用,在PHP7之前,当数组通过foreach迭代时,数组指针会移动.现在开始,不再如此,见下面代码.. $array = [0, 1, 2]; foreach ($array as &$val) { var_dump(current($array)); } PHP5运行的结果会打印int(1) int(2) bool(false) PHP7运行的结果会打印三次int(0),也就是说数组的内部指针并没有改变. 之前运行的结果会打印int(1), in

  • 简述PHP7.4 新特性和废弃的功能

    PHP7.4 新特性 PHP7.4 上月 28 号已经发布了.又带来了一些新特性.可以让我们的代码写的更少了. 1. 属性添加限定类型 <?php class User { public int $age; public string $name } $user = new User(); $user->age = 10; $user->name = "张三"; //error $user->age = "zhang";//需要传递int 2

  • PHP7中新添特性整理

    对于版本更新,在各个软件中都有所涉及,目的是针对现有版本不足的地方做一些优化.我们对于php也经历了不少的版本,在最近的php7增加了一些以往锁没有的特性,如类型声明.操作符和其他特性.下面我们就php7新增的特性分别进行介绍,大家一起来看看都有哪些. 1.标量类型声明 在php5中,有类名,接口,数组 和回调函数.在php7中,增加了字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool).下面我们来举例子,万事万物看例子 function typeIn

  • PHP7.0安装笔记整理

    2015年6月11日,PHP官网发布消息,正式公开发布PHP7第一版的alpha版本. PHP7特性: PHP 7.0.0 Alpha 1使用新版的ZendEngine引擎,带来了许多新的特性,以下是不完全列表: (1)性能提升:PHP7比PHP5.6性能提升了两倍. Improved performance: PHP 7 is up to twice as fast as PHP 5.6 (2)全面一致的64位支持. Consistent 64-bit support (3)以前的许多致命错误

  • Vue2.2.0+新特性整理及注意事项

    大家对vue的基本概念了解吗?不太清楚的朋友可以先熟悉下. vue基础教程 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 本文给大家整理了vue2.2.0+新特征并详细的给大家罗列了各个版本的注意要点.这是本文重点要讲的知识,大家可以参考学习. 先附上官网: https://cn.vuejs.org/v2/guide/

  • 浅谈PHP7中的一些小技巧

    相同的命名空间,相同的 use 在 PHP 7 之前,开发者经常这么做: use Universe\Saiyan; use Universe\SuperSaiyan; 从 PHP 7 开始: use Universe\{Saiyan, SuperSaiyan}; 函数和常量也是一样的.如果它们属于同一命名空间,则可以对它们进行分组. 常量可以是数组 define('NAMES', [ 'first' => 'John', 'middle' => 'Fitzgerald', 'last' =&g

  • ASP.NET在MVC中MaxLength特性设置无效的解决方法

    本文实例讲述了ASP.NET在MVC中MaxLength特性设置无效的解决方法.分享给大家供大家参考.具体分析如下: 一.问题: 在ASP.NET MVC项目中,给某个Model打上了MaxLength特性如下: 复制代码 代码如下: public class SomeClass {     [MaxLength(16, ErrorMessage = "最大长度16")]     public string SomeProperty{get;set;} } 但在其对应的表单元素中并没有

  • 了不起的node.js读书笔记之node.js中的特性

    环境的变化带来了技术大跃进,机遇和挑战同时到来.基于我js也没有学,只好赶鸭子上架一起学了.(>﹏<) 1.先读读书 一开始就不知死活地看<深入浅出node.js>,弄得团团转,看完才知道这本书是要一定基础的.在网上搜刮到了41页的<node入门>,自己学着搭建了一个Web应用.并且在刷新成就感后,就抱读<了不起的node.js>.现准备看完这本书后再回读<深入浅出node.js>. 2.搭建环境 运行git上的例程(3次报错) 在官网下载msi

  • DROP TABLE在不同数据库中的写法整理

    DROP TABLE在不同数据库中的写法整理 1,MySql中 DROP TABLE IF EXISTS [table_name] 2,Oracle中: BEGIN EXECUTE IMMEDIATE 'DROP TABLE [table_name]'; EXCEPTION WHEN OTHERS THEN NULL; END; 3,在Sql Server中 IF EXISTS ( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TA

  • 让微信小程序支持ES6中Promise特性的方法详解

    遇到的问题 微信开发者工具更新版本后, 移除了开发者工具对 ES6 中 Promise 特性原生的支持, 理由是因为实体机器是不支持 Promise 的, 所以我们需要引入第三方的 Promise 库 微信更新日志 解决方案 下载第三方库 在这里我引入的是 Bluebird 库, 可以到Bluebird官网 下载需要的文件,也可以通过本地下载 Bluebrid 提供了两种已经构建好的完整的 Promise 库文件, 未经压缩的 bluebird.js 和已压缩的 bluebird.min.js

随机推荐