浅析浅析PHP7新功能及语法变化总结新功能及语法变化总结
主要介绍了浅析PHP7新功能及语法变化总结的相关资料,需要的朋友可以参考下
标量类型声明标量类型声明
有两种模式: 强制 (默认) 和 严格模式。 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数
(int), 浮点数 (float), 以及布尔值 (bool)。在旧版中,函数的参数声明只能是(Array $arr)、(CLassName $obj)等,基本类型比如
Int,String等是不能够被声明的
<?php
function check(int $bool){
var_dump($bool);
}
check(1);
check(true);
若无强制类型转换,会输入int(1)bool(true)。转换后会输出bool(true) bool(true)
返回值类型声明返回值类型声明
PHP 7 增加了对返回类型声明的支持。返回类型声明指明了函数返回值的类型。可用的类型与参数声明中可用的类型相同。
<?php
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
以上例程会输出:
Array
(
[0] => 6
[1] => 15
[2] => 24
)
null合并运算符合并运算符
项目中存在大量同时使用三元表达式和 isset()的情况,新增了null合并运算符 (??) 这个语法糖。如果变量存在且值不为
NULL, 它就会返回自身的值,否则返回第二个操作数。
旧版:isset($_GET[‘id']) ? $_GET[id] : err;
新版:$_GET['id'] ?? 'err';
太空船操作符(组合比较符)太空船操作符(组合比较符)
太空船操作符用于比较两个表达式。当$a小于、等于或大于$b时它分别返回-1、0或1
<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
通过define()定义常量数组
<?php
define('ANIMALS', ['dog', 'cat', 'bird']);
echo ANIMALS[1]; // outputs "cat"
匿名类匿名类