




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、新特性54重点在54 版本里面的里面的数组的写法可以写成类似这样的简便$arr = array(12, 45);简化版:$arr1 = 12, 45;55一、概念:提供了一种简单的方式实现数据的可迭代,比使用迭代器 Iterator 更容易function gen()for ($i = 1; $i $4; $i +) yield $i;foreach(gen() as $value) echo $value ._EOL;以上例子将输出 1, 2, 3;二、异常和 finally 关键字概念:进行异常捕获,无论是否发生异常,finally 中的代码始终会被执行。try 抛出异常 catch (E
2、xception $e) 抛出异常 finally 出现异常后的收尾工作。三、foreach 和list()概念:使用 list 对 foreach 出的元素进行拆分$data = 1, 2,3, 4,;foreach ($data as list($one, $two) echo one: $one, two: $two ;输出one: 1, two: 2one: 3, two: 4四、empty 和任意表达式概念:empty 中可传入任意合法的表达式五、数组和字符串直接表达式概念:在数组和字符串直接表达式上可直接进行获取其中的元素1,2,3,4,50“This is an string”0
3、六、新的加密函数 password_hash()概念:不需要手动管理生成时的盐值和算法,兼容 bcrypt验证使用 password_verify();$password = “password”;$passwordHash = password_hash($password);if (password_verify(password, $hash) echo 有效!; else echo 无效;56一、使用表达式定义常量、变量、参数默认值概念:可以在使用和定义常量时对常量进行简单的运算const ONE = 1;const TWO = ONE * 2;class C const THREE
4、= TWO + 1;const ONE_THIRD = ONE / self:THREE;consTENCE = The value of THREE is .self:THREE;public function f($a = ONE + self:THREE) return $a;echo (new C)-f().n;echo C:SENTENCE;二、可变参数个数“”概念:可以使用接收数量不固定的参数和传递数量不固定的参数2.1. 形参function test($a, $b, $args)var_dump($args);test(1, 2, 3, 4, 5);输出: 3, 4, 52.2
5、. 实参function test($a, $b, $args)test1($args);function test1($a, $b, $c) var_dump($a, $b, $c);test(1, 2, 3, 4, 5);输出: 3, 4, 5三、数字的次方操作(幂运算)*概念:提供简化的次方操作2 的 5 次方:2 * 2 * 2 * 2 * 2简化的操作: 2 * 5四、导入常量和函数概念:以前只能导入另一个空间中的类,现在支持导入另一个空间中的常量和函数namespace NameSpace const FOO = 42;function f() echo FUNCTION .n;
6、namespace use const NameSpaceFOO;use function NameSpacef;echo FOO.n;f();70一、类型严格模式【重点】概念:提供指定参数类型和返回值类型的,类似C+等强类型语言,可以提高代码执行效率开启严格模式:declare(strict_types=1);可选类型:类型释义类名/接口名array数组callable可被调用,包括:函数、闭包函数、实现了 invoke()的类bool类型,true falsedeclare(strict_types=1);function sum($a, float $b): float return $
7、a + $b;二、null 合并运算符和运算符【重点】概念:简化 isset($variable) ? $variable : 其他值 和比较操作的写法isset($variable) ? $variable : 其他值 简写为:$variable ? 其他值$a 和 $b 比较,相等返回 0, $a 大于 $b 返回 1, $a 小于 $b 返回 -1 简写为:$a $b三、定义数组常量概念:可以将简单数组定义为常量define(ANIMALS, dog,float浮点型:3.1415整形:1, 2, 3, 4string字符串型:”string”cat,bird);echo ANIMALS
8、1; / 输出 cat四、类概念:可以定义类,实现用后即销毁的类。$obj = new class public $name = ;public $age = 20;var_dump($obj);输出:object(classanonymous)#1 (2) name= string(6) age=(20) 五、unicode 转义语法概念:可以通过双引号转义 unicode 编码为对应的字符echo u9999;输出:香六、Closure:call()概念:使得闭包函数能够接触到一个对象的$this设置闭包函数的上下文# 定义一个用于测试的类class A private $x = 1;#
9、老写法$getXCB = function() return $this-x;$getX = $getXCB-bindTA);echo $getX();# 新写法:$getX = function() return $this-x;echo $getX-call(new A);输出:1;七、unserialize()限定类概念:限定对象被反序列化时使用的类,避免潜在的代码注入。不允许任何类,将为plete_Class 类的对象$data = unserialize($foo, allowed_classes = false);允许特定的类,不在列表中将为plete_Class 类的对象$dat
10、a = unserialize($foo, allowed_classes = MyClass, MyClass2);允许所有类$data = unserialize($foo, allowed_classes = true);八、lChar 类lChar:ord();lChar:chr();九、断言和异常概念:断言(Assert)现在已经是一个语法结构,速度更快,同时支持抛出自定义错误ini_set(assert.exception, 1);class CustomError extends AssertionError assert(false, new CustomError(Some
11、error message);十、命名空间成员批量导入概念:批量从另一个空间中导入类、函数和常量use somenamespaceClassA, ClassB, ClassC as C;批量导入空间 somenamespace 的类 ClassA, ClassB, ClassCuse function somenamespacefn_a, fn_b, fn_c;批量导入空间 somenamespace 中的函数fn_a, fn_b, fn_cuse const somenamespaceConstA, ConstB, ConstC;批量导入空间 somenamespace 中的常量ConstA
12、, ConstB, ConstC十一、返回值和委托概念:可以有返回值了,可以返回另一个# 获取的返回值$gen = (function() yield 1;yield 2;return 3;)();foreach ($gen as $val) echo $val,_EOL;echo $gen-getReturn(),_EOL;返回另一个#function gen()yield 1;yield 2;# 在当前中返回另一个yield from gen2();function gen2()yield 3;yield 4;foreach (gen() as $val)echo $val,_EOL;十二
13、、整数相除,取模:div()概念:简化整数相除操作原写法:floor(10/3);新写法:div(10, 3);十三、ses_start()覆盖配置文件配置ses_start(cache_limiter = private,read_and_close = true,);十四、捕获错误function call_method($obj)$obj-method();#产生错误try call_method(); catch (Error $e) var_dump($e);结果:71一、可为空的类型语法:?类型?string?arrayfunction test(?string $name)var
14、_dump($name);test(null);二、 函数void 返回值function swap(&$left, &$right) : voidif ($left = $right) return;$tmp = $left;$left = $right;$right = $tmp;$a = 1;$b = 2;var_dump(swap($a, $b), $a, $b);注意:* null 不是void, return;是返回空,return null;是返回 null,返回值不同。三、 iterable 类型四、多异常捕获try / some code catch (Exception |
15、 SecondException $e) / handleand second exceptions五、字符串取负数下标abcdef-2六、将callable 转为 Closureclass Testpublic function exeFunction()return Closure:fromCallable($this, privateFunction);private function privateFunction($param)var_dump($param);$privFunc = (new Test)-exeFunction();$privFunc(some value);七、数组短内从另一数组中变量$data = name =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 论建设工程合同的法律问题
- 便利店加盟合同书样本2025
- 深圳二手房买卖合同要点
- 人才合作合同
- 云南省迪庆2024-2025学年高三下学期第二次调研考试英语试题含解析
- 上海戏剧学院《药物合成反应C》2023-2024学年第二学期期末试卷
- 江西省南昌市10所省重点2025年高三下学期暑假联考物理试题含解析
- 潍坊理工学院《云南原生态民族音乐》2023-2024学年第一学期期末试卷
- 宿松县2024-2025学年小学六年级第二学期小升初数学试卷含解析
- 二手房产合同转让协议书
- 三国演义主要人物形象-刘备
- 【精选】人教版四年级下册数学《脱式计算》(含简便运算)专项练习题
- 常用检验项目的医学决定水平
- 急诊及重症医学-机械通气
- YY/T 1248-2014乙型肝炎病毒表面抗体测定试剂(盒)(化学发光免疫分析法)
- SH/T 1673-1999工业用环己烷
- 重症医学科各项规章制度汇编
- 平面位置(轴线)测量记录表
- 生物制造国内外状况课件
- 处分通报范文员工处分通报范文4篇
- 罚没收缴物品处理管理流程图
评论
0/150
提交评论