PHP7에서 가져온 새로운 기능
1. 유형 선언.
string, int, 부동 소수점, bool을 사용하여 함수의 매개변수 유형과 함수 반환 값을 선언할 수 있습니다.
declare(strict_types=1); function add(int $a, int $b): int { return $a+$b; } echo add(1, 2); echo add(1.5, 2.6);
php5는 위 코드를 실행할 수 없습니다. php7이 실행되면 먼저 3과 오류가 출력됩니다(add()에 전달된 인수 1은 정수 유형이어야 하며 주어진 부동 소수점이어야 합니다).
두 개의 스칼라가 있습니다. 유형 선언 모드: 필수(기본값) 및 엄격 모드.
declare(strict_types=1)는 코드를 실행하려면 파일의 첫 번째 줄에 배치되어야 하며 현재 파일이 유효합니다!
2.set_Exception_handler()는 더 이상 수신된 내용이 예외 객체여야 한다고 보장하지 않습니다.
PHP 7에서는 많은 치명적인 오류와 복구 가능한 치명적인 오류가 처리를 위해 예외로 변환됩니다. 이러한 예외는 Throwable 인터페이스를 구현하는 Error 클래스에서 상속됩니다(모든 예외는 이 기본 인터페이스를 구현합니다).
PHP7은 개발자의 처리를 더욱 용이하게 하고 개발자가 프로그램을 더 잘 제어할 수 있게 해줍니다. 기본적으로 오류는 프로그램을 직접 중단시키고 PHP7은 오류를 캡처하고 처리하는 기능을 제공하여 프로그램이 계속 실행될 수 있도록 하기 때문입니다. . 프로그래머에게는 보다 유연한 옵션이 제공됩니다.
3. 새로운 연산자 "<=>"
구문: $c = $a <=> $b
$a > $b의 값은 1
$a == $b인 경우 $c의 값은 0
$a < $b인 경우 $c의 값은 -1
4입니다. 새 연산자 "??"
변수가 존재합니다. 값이 NULL이 아니면 자체 값을 반환하고, 그렇지 않으면 두 번째 피연산자를 반환합니다.
//原写法 $username = isset($_GET['user]) ? $_GET['user] : 'nobody'; //现在 $username = $_GET['user'] ?? 'nobody';
5.define()은 상수 배열을 정의합니다
define('ARR',['a','b']); echo ARR[1];// a
6.AST: 추상 구문 트리, 추상 구문 트리
AST는 PHP 컴파일 프로세스에서 미들웨어 역할을 하며 원본 출력을 직접 대체합니다. opcode 메소드는 인터프리터(파서)와 컴파일러(컴파일러)를 분리하여 일부 Hack 코드를 줄이는 동시에 구현을 더 쉽게 이해하고 유지 관리할 수 있도록 합니다.
PHP5: PHP 코드-> 분석-> OPCODE -> 실행
PHP7: 구문 분석 -> AST -> OPCODE -> 실행
$anonymous_func = function(){return 'function';};
echo $anonymous_func(); // 输出function
9. Unserialize는 필터링 기능을 제공합니다
더 안전하게 데이터를 역직렬화합니다.
10. 네임스페이스 참조 최적화위 내용은 php7의 새로운 기능: php7이 가져온 새로운 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!// PHP7以前语法的写法
use FooLibrary\Bar\Baz\ClassA;
use FooLibrary\Bar\Baz\ClassB;
// PHP7新语法写法
use FooLibrary\Bar\Baz\{ ClassA, ClassB};