1.use声明新特性
在日常开发中,我们需要通过命名空间中的PHP声明来显示引入很多类,函数,常量。这导致了在文件顶部需要写很多的use声明,显得很繁琐。
为解决这个问题,PHP7引用了批量的use声明,分别由1.非混合模式的use声明。2.混合模式的use声明。 3.复合模式的use声明。
下面是非混合模式的use声明。
use app\admin\controller\{Book,Ebook,Video};
use function app\admin\common\fun\{getBook,saveBook};
use const app\admin\orther\{COUNT,KEY};
2.新的操作符
PHP7中引入了两个非常有意思的操作符,这两个操作符可以让我们用更简单的代码实现与复杂代码相同的功能。并且让代码更清晰易懂,更具可读性。
2.1太空飞船操作符(<=>)
太空飞船操作符在比较变量时非常有用,这里说的变量包括数值(字符串型,整型,浮点型),数组,对象。这个操作符将三个比较符号(==,<,>)打包在一起。其具体规则如下:
当符号两边相等时返回0
当符号右边大于符号左边时返回-1
当符号左边大于符号右边时返回1
echo 1 <=> 1;
echo 1 <=> 2;
echo 2 <=> 1;
上代码将会输出 0 ,-1,1.
2.2合并运算符??
合并运算符的功能是,在第一操作数存在时可被直接返回,不然则返回第二操作数。
$post = isset($_POST['title'])? $_POST['title'] : NULL;
$post = $_POST['title'] ?? NULL ;
以上的两行代码的功能是一致的!
3.统一变量语法
在PHP7之后,变量的解析方式为从左到右解释,否则会报错,比如:
//以下的输出在PHP中就会报错!因为PHP7变量的解析为统一从左到右解析。
$tmp = 'one';
$one = 1;
echo $$tmp;
//若不想报错,则需要加上花括号:
echo ${$tmp};
4.其他修改
4.1Session_start函数中的选项数组
在PHP7之前,我们要使用session时必须开启Session_start()函数,但是相关的参数需要到php.ini文件中修改,但PHP7后,相关的参数可以在开启Session_start()时传递相关参数,而且这些参数会覆盖php.ini中的session配置
//开启session_start
session_start([
'cookie_lifetime'=>3600,
'read_and_close'=>true,
])