찾다
백엔드 개발PHP7PHP 7.x 각 버전의 새로운 기능 소개

PHP 7.x 각 버전의 새로운 기능 소개

추천(무료): PHP7

PHP 7.law의 새로운 기능 작성하는 방법이 있나요? PHP7 이상에서만 가능한 글쓰기 방법이라고 하더군요. 그는 모른다고 말했다.

저는 마음 속으로 중얼거리며 이 블로그를 쓰기로 했습니다.

PHP7은 기본에 더해 현대적인 PHP여야 합니다. PHP7에서는 강력한 유형 정의와 결합된 비교 연산자와 같은 일부 문법적 작성 방법인 Define()이 배열 및 기타 기능을 정의할 수 있기 때문입니다. 정식 소개는 PHP7.0부터 시작됩니다. 향후 새로운 버전이 추가될 예정이며, 순차적으로 추가될 예정입니다. 자, 시작해 보겠습니다

PHP 7.0

스칼라 유형 선언


스칼라 유형이란 무엇인가요?

네 가지 스칼라 유형:

boolean(부울 유형)

정수(정수 유형) float(부동 소수점 유형, double이라고도 함) 문자열(문자열)

두 가지 복합 유형:

배열(배열)

객체
리소스 외부 리소스에 대한 참조를 보유하는 특수 변수입니다. 리소스는 특화된 기능을 통해 생성되고 사용됩니다. 리소스 유형 변수는 파일 열기, 데이터베이스 연결, 그래픽 캔버스 영역 등을 위한 특수 핸들입니다.

간단히 말해서 스칼라 유형은 변수를 정의하는 데이터 유형입니다.


php5에는 클래스 이름, 인터페이스, 배열 및 콜백 함수가 있습니다. PHP에는 문자열, 정수, 부동 소수점 및 부울이 추가되었습니다. 아래의 예를 살펴보겠습니다. 모든 것에 대한 예를 살펴보세요

$a = $a ?? '';

여기서 $a는 int 유형이어야 함을 정의합니다. 유형 함수에 문자열이 전달되면 오류가 보고됩니다. 위 코드를 수정하면 맞습니다
function typeInt(int $a){
    echo $a;}typeInt('sad');// 运行,他讲会报错 Fatal error: Uncaught TypeError: Argument 1 passed to type() must be of the type integer, string given


반환값 유형 선언
함수 메서드의 반환값을 정의할 수 있습니다. 예를 들어 내 함수가 int 유형을 반환해야 한다면 반드시 int를 반환할 것입니다. . 문자열을 반환하면 오류가 보고됩니다. 다음과 같습니다

function typeString(string $a){
    echo $a;}typeString('sad'); //sad
배열을 정의하고 문자열이나 다른 유형을 반환하면 어떻게 되나요?

그런 다음 그는

오류를 보고합니다 예를 들어

<?phpfunction  returnArray(): array{

    return [1, 2, 3, 4];}print_r(returnArray());/*Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
*/

null 병합 연산자

일상적으로 삼항 표현식과 isset()이 동시에 사용되는 상황이 많기 때문에 null 병합 연산자를 추가했습니다. (??)는 구문 설탕입니다. 변수가 존재하고 NULL이 아니면 자체 값을 반환하고, 그렇지 않으면 두 번째 피연산자를 반환합니다.

function returnErrorArray(): array
{

    return '1456546';
}

print_r(returnErrorArray());
/*
Array
Fatal error: Uncaught TypeError: Return value of returnArray() must be of the type array, string returned in 
*/
우주선 연산자

<?php $username = $_GET[&#39;user&#39;] ?? &#39;nobody&#39;;
//这两个是等效的  当不存在user 则返回?? 后面的参数

$username = isset($_GET[&#39;user&#39;]) ? $_GET[&#39;user&#39;] : &#39;nobody&#39;;

?>
define 배열 정의

이전 버전의 PHP7에서는 정의가 배열을 정의할 수 없었습니다. 예를 들어

// 整数echo 1  1; // 0 当左边等于右边的时候,返回0echo 1  2; // -1  当左边小于右边,返回-1echo 2  1; // 1  当左边大于右边,返回1// 浮点数echo 1.5  1.5; // 0echo 1.5  2.5; // -1echo 2.5  1.5; // 1
 // 字符串echo "a"  "a"; // 0echo "a"  "b"; // -1echo "b"  "a"; // 1
메소드 일괄 가져오기

define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // 输出 "cat"
가 가능합니다. ## #유니코드 코드 포인트 번역 구문
// PHP 7 之前的代码use some\namespace\ClassA;use some\namespace\ClassB;use some\namespace\ClassC as C;use function some\namespace\fn_a;use function some\namespace\fn_b;use function some\namespace\fn_c;use const some\namespace\ConstA;use const some\namespace\ConstB;use const some\namespace\ConstC;// PHP 7+ 及更高版本的代码use some\namespace\{ClassA, ClassB, ClassC as C};use function some\namespace\{fn_a, fn_b, fn_c};use const some\namespace\{ConstA, ConstB, ConstC};

익명 클래스

echo "\u{aa}"; //ªecho "\u{0000aa}";  //ª  echo "\u{9999}"; //香
PHP 7.1

Nullable 유형

이제 매개변수 유형과 반환 값의 유형을 nullable로 만들 수 있습니다. 유형. 이 기능이 활성화되면 전달된 매개변수 또는 함수에서 반환된 결과는 지정된 유형이거나 null 입니다.

<?phpinterface  Logger {
    public function log(string $msg);}class Application {
    private $logger;

    public function getLogger(): Logger {
         return $this->logger;
    }

    public function setLogger(Logger $logger) {
         $this->logger = $logger;
    }}$app = new Application;$app->setLogger(new class implements Logger {  //这里就是匿名类
    public function log(string $msg) {
        echo $msg;
    }});
void

<?phpfunction  testReturn(): ?string{
    return &#39;elePHPant&#39;;}var_dump(testReturn()); //string(10) "elePHPant"function testReturn(): ?string{
    return null;}var_dump(testReturn()); //NULLfunction test(?string $name){
    var_dump($name);}test(&#39;elePHPant&#39;); //string(10) "elePHPant"test(null); //NULLtest(); //Uncaught Error: Too few arguments to function test(), 0 passed in...

다중 예외 캡처 처리

와 같이 void를 반환하는 유형을 추가합니다. 이 함수는 일상적인 개발에서 여전히 비교적 일반적입니다.

<?phpfunction  swap(&$left, &$right) : void{
    if ($left === $right) {
        return;
    }

    $tmp = $left;
    $left = $right;
    $right = $tmp;}$a = 1;$b = 2;var_dump(swap($a, $b), $a, $b);

PHP 7.2

PHP7 .2는 PHP7 시리즈에서 가장 새로운 기능

### 그룹화된 네임스페이스에서 후행 쉼표를 허용합니다

예를 들어

<?php try {
    // some code
} catch (FirstException | SecondException $e) {  //用 | 来捕获FirstException异常,或者SecondException 异常
  
}

추상 메소드 재정의를 허용합니다

<?phpuse  Foo\Bar\{
    Foo,
    Bar,
    Baz,};

새로운 객체 유형


<?phpabstract  class A{
    abstract function test(string $s);}abstract class B extends A{
    // overridden - still maintaining contravariance for parameters and covariance for return
    abstract function test($s) : int;}

PHP 7.3

PHP7.3은 구문 수준에서 큰 변화가 없습니다.

PHP 7.4

클래스 속성이 유형 선언을 지원합니다

PHP가 강력한 타이핑을 향해 한 걸음 더 나아간 것을 축하합니다

<?phpfunction  test(object $obj) : object  //这里 可以输入对象{
    return new SplQueue();}test(new StdClass());
화살표 함수

화살표 함수는 암시적 값 기반 범위 바인딩을 사용하는 방법을 제공합니다. 기능을 정의하기 위한 것입니다. JS의 화살표 기능과 비슷하지만 fn이 있습니다. 불만의 물결

<?phpclass  User {
    public int $id;
    public string $name;}?>

Null 병합 연산자 지원 방법

<?php $factor = 10;$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);// $nums = array(10, 20, 30, 40);?>

위 내용은 PHP 7.x 각 버전의 새로운 기능 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.