函数的参数和返回值,都可以指定类型。 function boolJudge(bool...$args): float { $ret = true; foreach ($args as $value) { $ret &= $value; } return $ret; } var_dump(boolJudge(1, 1.0, true)); //Output: float(1) 新增null合并运算符(??)。如果变量存在且值不为null,就会返回自身的值,否则返回第二个操作数。 <?php $user = $_GET['user'] ?? 'david'; $user = isset($_GET['user']) ? $_GET['user'] : 'david'; 新增太空船操作符,用于比较两个表达式。当a小于,等于或大于b时分别返回-1,0或1。 <?php // 整数 echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 define函数可以定义array类型常量。 <?php define('FRUITS', ['apple','banana','orange']); echo FRUITS[2]; // 输出 "orange" 可以通过new class来实例化一个匿名类。 <?php interface Animal{//定义动物接口,任何动物的类都要实现sound方法 public function sound(); } class Farm{ private $animal; public function feed(Animal $animal){//喂养动物 $this->animal = $animal; } public function visit(){//参观农场时,喂养的动物会发出叫声 $this->animal->sound(); } } $wangFarm = new Farm();//王老先生有块地 $wangFarm->feed( new class implements Animal{//地里养奶牛 public function sound(){ echo "Moo~Moo~"; } } ); $wangFarm->visit();// 输出 Moo~Moo~ 提供了一次导入多个类的group use声明。 <?php //PHP 5 use phpbook\classA; use phpbook\classB; use phpbook\classC; //PHP 7 use phpbook\{classA,classB,classC}; 新增Throwable类型,可以捕获异常和错误。 try { // Code that may throw an Exception or Error. } catch (Throwable $t) { // Executed only in PHP 7, will not match in PHP 5.x } catch (Exception $e) { // Executed only in PHP 5.x, will not be reached in PHP 7 }