PHP7中的新函数介绍
PHP7作为最新的版本,相较于之前的版本在内存占用、性能等方面有了很大的提升。而随着版本的更新,也出现了许多新的函数。下面就来介绍一些PHP7中的新函数。
1. NULL合并运算符(??)
在之前的版本中,我们经常用三目运算符来判断变量是否为null,而在PHP7中,新增了一个NULL合并运算符(??),它的含义是如果左边的表达式存在且不为null,返回左边的表达式,否则返回右边的表达式。例如:
$name = $_GET['name'] ?? 'Anonymous';
以上代码相当于:
if (isset($_GET['name'])) {
$name = $_GET['name'];
} else {
$name = 'Anonymous';
}
2. 太空船操作符(<=>)
太空船操作符会比较两个变量,如果左边的变量小于右边的变量,则返回-1;如果左边的变量等于右边的变量,则返回0;如果左边的变量大于右边的变量,则返回1。例如:
$score1 = 80; $score2 = 90; $result = $score1 <=> $score2; // $result的值为-1
3. 匿名类
PHP7中新增了匿名类的概念,可以直接在代码里创建一个类的实例,而不需要先定义一个类。例如:
$person = new class {
private $name = 'John';
public function getName() {
return $this->name;
}
};
echo $person->getName(); // 输出John
4. Closure::fromCallable()
Closure::fromCallable()函数可以将一个普通的方法转化成一个匿名函数,例如:
function hello() {
echo 'Hello, world!';
}
$closure = Closure::fromCallable('hello');
$closure(); // 输出Hello, world!
5. 函数返回值类型声明
PHP7中可以在函数定义时指定函数的返回值类型,例如:
function add(int $num1, int $num2): int {
return $num1 + $num2;
}
其中,冒号后面的int表示返回值的类型为整型。
6. Scalar类型声明
在PHP7中,可以在函数声明时指定函数参数的类型。如果传递的参数类型不匹配,会抛出TypeError异常。例如:
function add(int $num1, int $num2) {
return $num1 + $num2;
}
add(1, '2'); // 会抛出TypeError异常
7. Uncaught Exception Handler变更
在PHP7之前,如果没有捕获到异常,会调用set_exception_handler()函数指定的异常处理函数,但是PHP7中的行为有所改变。如果没有捕获到异常,会调用内置的__toString()函数,将异常对象转化成字符串并输出。例如:
class MyException extends Exception {
}
throw new MyException('Oops!');
在PHP7之前,以上代码会触发set_exception_handler()函数,而在PHP7中,会将MyException对象转化成字符串并输出。
以上就是PHP7中一些新函数的介绍,这些新函数可以提高开发效率、增强代码的可读性并且可以让代码更加安全。
