PHP7新特性

1.太空船操作符
$c = a <=> b;
a < b $c = -1
a = b $c = 0
a < b $c = 1
2.标量类型声明

在 PHP7 中为了提高执行效率,引入了一个新的功能,即在函数方法中增加了 Scalar 类型声明(标量类型声明),这样做节省了对数据类型的检测。标量类型声明有如下的两个选项:

强制模式:强制是默认的模式,不需要指定。
严格模式:严格的模式必须明确暗示。RFC 给每一个 PHP 文件,添加一句新的可选指令(declare(strict_type=1);),让同一个 PHP 文件内的全部函数调用和语句返回,都有一个“严格约束”的标量类型声明检查。
可以使用上述模式强制执行以下类型的函数参数

强制模式-示例
<?php
function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, '3', 4.1));
?>
严格模式-示例
<?php
   // Strict mode
   declare(strict_types=1);
   function sum(int ...$ints) {
      return array_sum($ints);
   }
   print(sum(2, '3', 4.1));
?>

运行上述代码,它产生以下浏览器输出:

PHP Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, called in /soft/node/run.php on line 7 and defined in /soft/node/run.php:4 Stack trace: #0 /soft/node/run.php(7): sum(2, '3', 4.1) #1 {main} Next TypeError: Argument 3 passed to sum() must be of the type integer, float given, called in /soft/node/run.php on line 7 and defined in /soft/node/run.php:4 Stack trace: #0 /soft/node/run.php(7): sum(2, '3', 4.1) #1 {main} thrown in /soft/node/run.php on line 4

严格模式的校验行为:严格的类型校验调用拓展或者 PHP 内置函数,会改变 zend_parse_parameters 的行为。特别注意,失败的时候,它会产生E_RECOVERABLE_ERROR 而不是E_WARNING。严格类型校验规则是非常直接的:只有当类型和指定类型声明匹配,它才会接受,否则拒绝。

3.NULL合并操作符
<?php
$a = null;
$b = 'bbb';
var_dump($a ?? $b); // 输出: string 'bbb'
var_dump($a ?: $b); // 输出: string 'bbb'
?>
4.常量数组
<?php
 define('animals', [
      'dog',
      'cat',
      'bird'
   ]);
   print_r(animals);
?>
5.NameSpace批量导入

举例:有一个Mysql类位于Includes\Code\Cache命名空间下,有一个File类位于Includes\Code\Index命名空间下,还有两个位于Includes\Code\Data命名空间下,那么此时,若需要use声明,代码如下

<?php
use Includes\Code\{ 
    Cache\Mysql,
    Index\File,
    Data\Mysqli,
    Data\Pdo
};
?>
6.整数除法函数
var_dump(intdiv(10,3)) //3
7.会话选项设置

session_start() 可以加入一个数组覆盖php.ini的配置

session_start([
    'cache_limiter' => 'private',
    'read_and_close' => true,
]);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. ??运算符(NULL合并运算符)把这个放在第一个说是因为我觉得它很有用。用法:$a = $_GET['a']...
    php红薯阅读 281评论 0 0
  • 标量类型声明PHP 7 中的函数的形参类型声明可以是标量了。在 PHP 5 中只能是类名、接口、array 或者 ...
    叫我峰兄阅读 285评论 0 0
  • 今早打开简书,弹出一条信息,加入简书两周年。两周年啊,我不禁想起了朱自清的《匆匆》,时光的一去不复返,谁能告诉我,...
    晴天的天阅读 1,577评论 44 34
  • 修炼自己不要随手烂写,一笔一画的如同一个小学生般认真对待,可一不小心就会开始潦草起来。
    华华叶儿阅读 551评论 0 0
  • 我相信能够看到这篇文章,并且渴望看完这篇文章的写作者很多。 你是为了什么而写作?关于写作,早知道这一点,比什么都重...
    Ruru凤阅读 334评论 0 3

友情链接更多精彩内容