PHP开发者应该学习、会用10个PHP7新特性
本文主要总结了10个PHP7特性,这些PHP特性对于PHP开发者来说都是应该学习和使用的,一起来学习下:...
本文主要总结了10个PHP7特性,这些PHP特性对于PHP开发者来说都是应该学习和使用的,一起来学习下:
1)标量类型声明(PHP7)
PHP是一种松散类型的编程语言,因此没有提供任何指定输入参数类型和返回值类型的方法。 PHP7通过以下语法改变了这个现象:
function add(int $x, int $y) : int { return $x + $y; } echo add(1, 2);
有效类型为:类/接口名称,self,array(数组),callable(回调类型),bool(布尔型),float(浮点型),int(整型)和string(字符串)。
2) — 空接合操作符(PHP7)
空接合操作符虽然小,但非常好用,是PHP7中新增加的。 — 只要操作符的左边存在且不为空,就返回左边,否则就返回操作符的右边:
//$a is not defined $b = NULL; $c = "abc123"; echo($a $b $c); //Result: abc123
3)匿名类(PHP7)
PHP7中还有一个新增的也很不错,那就是匿名类。有时候,我们只是没有必要创建一个命名的类,因为它的名字会导致当前命名空间的膨胀。语法非常简单:
echo (new class() { public function myMethod() { return "Hello!"; } })->myMethod(); //Result: Hello!
4)Reflection
Reflection是一个用来获取有关运行时代码信息的强大框架。让你可以对类、接口、函数、方法和扩展执行反向工程,以构建映射引擎,IoC容器或文档框架等等。
下面是一个获取匿名类所有方法的简单例子:
$class = new ReflectionClass(new class() { public function getText() { return "Hello from anonymous class"; } }); $methods = $class->getMethods(); var_dump($methods);
更多信息请看这里:http://php.n
5)短数组初始化
在用PHP编程的时候,我倾向于大量使用数组,因为它们不仅功能强大,而且简单易用。PHP的5.4.x版本使得更容易初始化:
$myArray = ["foo", "name" => "bar"];
6)DateTime类
PHP的5.2版本附带DateTime类作为首选的操纵和格式化日期和时间的方式。
更多信息请看这里:http://php.n
7)Lambda表达式/匿名函数
匿名函数(有时也被称为lambda表达式)是没有指定名称的函数。匿名函数可以被分配给一个变量,如下例所示:
$sayHi = function($toName) { echo("Hi " . $toName); }; $sayHi("Peter");
更多信息请看这里:http://php.n
8)array_map
array_map是一个不错的函数,能帮助你对数组中的每个元素执行计算。这在混合了匿名函数/ lambda表达式的时候特别好用。无论你为数组中的元素提供什么方法,array_map函数都适用:
$nameLengths = array_map(function($item) { return strlen($item); }, ["Sue", "Peter", "Michael"]); //Result: 3, 5, 7
需要注意的是,array_map可能会比foreach慢一点儿(特别当混合使用lambda表达式的时候更为明显),所以要慎用于那些非常大的数组。
更多信息请看这里:http://php.n
9)json_encode()和json_decode()
我最近倾向于大量使用JSON序列化和反序列化。PHP的json_encode和json_decode函数对此提供了大力支持。需要注意的是,json_encode会忽略私有成员:
class car { public $make = "Tesla"; public $model ="Model S"; private $errorCodes = ['34343', '545344']; } $carAsJson = json_encode(new car()); //Result: {"make":"Tesla","model":"Model S"}
更多信息请看这里:http://php.n
10)密码的哈希(hashing)和验证
PHP通过password_hash和password_verify函数,用一种安全的方式来大力支持密码的哈希和验证。因为使用非常简单,所以我们就没有必要重新发明轮子了。想查看案例的话,请点击下面的文章:
http://www.c
作为PHP程序员,以上这10个PHP特性你一定要熟悉,感谢您的阅读。
-
使用者PHP图表包装程序创建漂亮的图表的方法
这篇文章中,我将讲解如何一步一步使用PHP,FusionCharts的核心JavaScript图表库,以及它的PHP图表包装程序创建漂亮的图表。...
-
PHP单例模式模拟Java Bean实现方法示例详解
实例讲述了PHP单例模式模拟Java Bean实现方法,介绍PHP单例模式模拟Java Bean实现方法,涉及php面向对象程序设计相关操作技巧,需要的朋友可以参考下。...
-
PHP图像处理绘图、水印、验证码、图像压缩技术实例总结
文章主要介绍了PHP图像处理技术,结合实例形式总结分析了php绘图、水印、验证码、图像压缩等相关函数、功能与图形绘制实现技巧,需要的朋友可以参考下:1、绘图 场景:...
-
PHP实现高清晰度无损图片压缩功能的代码
经常会用到把上传的大图片压缩,特别是体积,在微信等APP应用上,也默认都是有压缩的,那么,怎么样对图片大幅度压缩却仍能保持较高的清晰度呢?...
-
用PHP处理png图片白色背景色改为透明色的实例代码
文章主要介绍了php 处理png图片白色背景色改为透明色的实例代码,文中通过实例代码给大家介绍了用PHP的GD库把图片的背景替换成透明背景,需要的朋友参考下...
-
关于PHP往mysql数据库中批量插入数据实例教程
文章主要给大家介绍了关于php往mysql中批量插入数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧...
-
Php两点地理坐标距离的计算方法和具体代码
文章主要为大家详细介绍了php两点地理坐标距离的计算方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下php计算两点地理坐标距离的具体代码,具体内容如下功能:根据圆周率和...
-
PHP获取HTTP body内容的方法
今天小编就为大家分享一篇PHP获取HTTP body内容的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧有时候我们获取数据时需要根据Header中的格式来解析,比...
-
PHP面向对象程序设计中获取对象属性的3种方法实例分析
文章主要介绍了PHP获取对象属性的三种方法,结合实例形式分析了php面向对象程序设计中获取对象属性的常见操作技巧,需要的朋友可以参考下。PHP获取对象属性的三种方法,具体如下...
-
php5.5新增的yield关键字功能与相关使用技巧
文章主要介绍了PHP yield关键字功能与用法,结合实例形式分析了php5.5新增的yield关键字功能与相关使用技巧,需要的朋友可以参考下实例讲述PHP yield关键字功能与用法具体如下:y...