当前位置: 首页 > 后端技术 > PHP

PHP7.0的新特性

时间:2023-03-29 18:48:00 PHP

PHP7.0的新特性经常被面试官问到,在平时的项目开发中使用它们也会提升一定的代码质量和代码运行性能,可见这个知识点的重要性。但是,有很多人并没有去系统了解和掌握它。今天刚刚整理了一下系统,分享给大家。图片版文字版1.新增标量类型声明和函数返回值类型声明例如:model->getByFields(['order_no'=>$orderNo]);如果(empty($order)){返回[];}return(newOrderFactory)->getOrder($order['order_type'])->getOrderDetailByOrderNo($orderNo);}}2.飞船运算符(组合比较运算符):<=>例如:$c=$a<=>$bif$a>$b,then$c=1if$a=$b,then$c=0如果$a<$b,则$c=-13。NULL合并操作:??在PHP7之前:$c=isset($b)?$b:0;PHP7+:$c=$b??0;4。定义一个常量数组:define("ARR",[1,2,3])5。添加抽象语法树AST(高度解耦)PHP7之前:PHP代码->Parser语法分析->OPCODE->执行PHP7+:PHP代码->Parser语法分析->AST->OPCODE->执行6.命名空间引用优化BeforePHP7:使用FooLibrary\Bar\Baz\ClassA;使用FooLibrary\Bar\Baz\ClassB;PHP7+:我们eFooLibrary\Bar\Baz\{ClassA,ClassB};7.反序列化函数Unserialize()提供更安全的过滤特性8.增加整除函数intdiv()例如:intdiv(10,3)结果:39.错误处理更友好*在PHP7+中,很多致命错误和可恢复的致命错误转化为异常处理这些异常继承自Error类,该类实现了Throwable接口(所有异常都实现了这个基本接口)*PHP7+进一步方便了开发者处理,让开发者对程序有更大的控制权。因为默认情况下,Error会直接导致程序中断,而PHP7+提供了捕获和处理的能力,让程序继续执行,为程序员提供了更灵活的选择。“用后烧录”的完整类定义例如:logger;}publicfunctionsetLogger(Logger$logger){$this->logger=$logger;}}$app=newApplication;//使用新类创建匿名类$app->setLogger(newclassimplementsLogger{publicfunctionlog(string$msg){print($msg);}});$app->getLogger()->log("我的第一个日志");结果:我的第一个日志11.添加两个更新安全伪随机生成器函数random_bytes()和random_int()12。Closure::call()具有更好的性能,动态绑定一个闭包函数到一个新的对象实例并调用并执行该函数。例如:x;};//闭包函数绑定到A类$getX=$getXCB->bindTo(newA,'A');echo$getX();//PHP7+代码$getX=function(){return$this->x;};echo$getX->call(newA);13.删除扩展名:ereg、mssql、mysql