php7新内容总结(随时更新)

一.参数和返回值类型申明

  可以申明的有:float,int,bool,string,interfaces,array,callable

  一般模式:

   function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, ‘3‘, 4.1)); //9
  严格模式:
   declare(strict_types=1);
   function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, ‘3‘, 4.1)); //Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...
    返回值: declare(strict_types = 1);
   function returnIntValue(int $value): int {
      return $value + 1.0;
   }
   print(returnIntValue(5));//Fatal error: Uncaught TypeError: Return value of returnIntValue() must be of the type integer, float returned.

二.空合并运算符
isset($_GET[‘aa‘]) ? $_GET[‘aa‘] : ‘not passed‘等价于$_GET[‘aa‘]??: ‘not passed‘;

三.飞船运算符
 print( 1 <=> 1);//0
   print( 1 <=> 2);//-1
   print( 2 <=> 1);//1

四.定义数组常亮
define(‘animals‘, [ ‘a‘, ‘b‘, ‘c‘]);

五.过滤unserializePHP 7引入了过滤的unserialize()函数,以便在对不可信数据上的对象进行反序列化时提供更好的安全性。它可以防止可能的代码注入,并使开发人员能够对可以反序列化的类进行白名单。

六.use 批量声明在同一个命名空间下,现在use可以批量申明use some/namespace/{ClassA, ClassB, ClassC as C}; 

七.支持为负的字符串偏移量
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

八.foreach不再改变内部数组指针
$array = [0, 1, 2];
foreach ($array as &$val) {
    var_dump(current($array));
}

PHP5输出: 
int(1) 
int(2) 
bool(false) 
PHP7输出: 
int(0) 
int(0) 
int(0)



 
 

原文地址:https://www.cnblogs.com/crazytata/p/9318838.html

时间: 2024-10-18 07:46:22

php7新内容总结(随时更新)的相关文章

用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。

最近接触了Angular框架,今天用里面的http请求方法做了一个小的案例,是一个查询地名获取附近美食的小案例.还不太完善,后面面有时间会继续添加新的内容.这个小案例没有用到任何的jQuery与原生js方法. 先上HTML结构代码与HTML结构中的angular指令. <body ng-app="app"> <div ng-controller="con" id="con"> <h1>吃了么</h1>

一些开发中不常用但很实用的小技能,可能就一行代码,随时更新,个人备忘

最近经常纠结在各种不常用的小问题上.比如cell上因为文字内容不固定而不固定cell的行高,除了在tableView: heightForRowAtIndexPath: 这个协议方法中动态加载之外,有一个一行代码就可以解决的方法.不过目前只是想到这个问题,并没有想起是哪一行代码,什么时候想起来什么时候来填坑吧.随时更新各种小技巧. // 设置UITableView上cell上的线条Style tmpTableView?.separatorStyle =  UITableViewCellSepar

Ender在51CTO共享RS CCIE V5.0新考纲而更新的BGP定制视频课程(免费)

本课程将系统讲解现实互联网应用最为广泛的BGP协议(30课时).内容包含但不限于如下内容 掌握BGP概念和术语 掌握iBGP和eBGP 掌握4 字节的AS 号码 掌握BGP的基本配置 掌握BGP属性 掌握BGP选路原则 实现BGP路由汇总 使用Route-map控制BGP选路 使用前缀列表.AS-path List控制BGP选路(BGP13条选路原则) BGP的路由反射器.BGP联邦 BGP community属性 BGP正则表达式等等 视频连接地址:http://edu.51cto.com/c

Framework7学习笔记之 无限滚动(滚动到底部时加载新内容)

一:为页面添加无限滚动控件 在可滚动的容器上(一般为page-content)添加"infinite-scroll"类:在页面底部定义 加载指示器. <div class="page"> <div class="page-content infinite-scroll" data-distance="100"> ... <!-- 加载提示符 --> <div class="i

trait,interface,abstract,PHP7新特性以及PHP闭包学习

1月8日trait 自PHP5.4.0起,PHP实现了一种代码复用的方法 称为traittrait 是为 PHP这类单继承语言准备的一种代码复用机制 .trait 为了减少单继承语言的限制,使开发者可以在不同层级中独立的调用 trait中的 方法 trait和类的组合使用,避免了一般类的多继承和混入类(Mixin)相关的典型问题. trait 类似于一个类trait 不能被实例化 使用方法 其他类中use,既可单独调用例子:trait say{public function say_word()

替换文件中某个字符串并写入新内容(Java代码实现)

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStream; import java.io.InputStreamReader; /* * 替换文件(如果该文件含有子目录,则包括子目录所有文件)中某个字符串并写入新内容(J

Android 常用的快捷键(随时更新)

android studio 是google出的一款好用不贵的ide,好像是powerd by idea的那个公司,反正风格上差不多.下面是android studio常用的快捷键设置,记录一下自己用的,随时准备查看: 1.看代码时候用的 查看有哪些类实现了某个接口  ctrl + Alt + B 查看类的继承关系 选中类按 F4 查看具体类的实现 ctrl + 鼠标选中点击 回到方法括号的开始处或者到方法括号的结尾处  ctrl + [   和ctrl + ] 列出一个类里面的所有方法   A

添加新内容的四个 jQuery 方法:append,prepend,after,before

添加新内容的四个 jQuery 方法区别如下: append() - 在被选元素(里面)的结尾插入内容prepend() - 在被选元素(里面)的开头插入内容 //jQuery append() 方法在被选元素的结尾插入内容. $("p").append("Some appended text."); //jQuery prepend() 方法在被选元素的开头插入内容. $("p").prepend("Some prepended te

PHP7新特性及Laravel常见知识梳理

由于个人技术水平有限,答案或许会有偏差,欢迎大家指正. PHP模块 PHP7 和 PHP5 的区别,具体多了哪些新特性? 性能提升了两倍 结合比较运算符 (<=>) 标量类型声明 返回类型声明 try...catch 增加多条件判断,更多 Error 错误可以进行异常处理 匿名类,现在支持通过new class 来实例化一个匿名类,这可以用来替代一些"用后即焚"的完整类定义 -- 了解更多文章底部有 PHP7 新特性链接 为什么 PHP7 比 PHP5 性能提升了? 变量存