一.参数和返回值类型申明
可以申明的有: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