백엔드 개발 PHP8 예제를 통해 PHP8의 새로운 기능 설명

예제를 통해 PHP8의 새로운 기능 설명

Dec 02, 2021 pm 02:14 PM
php8

PHP8.0의 새로운 기능 해석 및 예시

새로운 명명된 매개변수 함수

명명된 매개변수란 무엇인가요?
함수를 호출할 때 매개변수 이름을 명시할 수 있습니다. 이름, 매개변수 원래 함수 매개변수를 설치하지 않고도 순서대로 전달할 수 있습니다.


예:
  <?php      /**
       * 计算余额方法
       * @param $amount 账户金额
       * @param $payment 支出金额
       * @return $balance = $amount-$payment 余额
       */
      function balance($amount, $payment)
      {
          return $amount - $payment;
      }
      //传统方式调用
      balance(100, 20);
      //php8 使用命名参数调用
      balance(amount: 100, payment: 20);
      //也可以换个顺序,这样来
      balance(payment: 20, amount: 100);
로그인 후 복사

주석 기능

주석이란 무엇인가요? 코드로 직접 이동하여 마지막으로

예:
#[Attribute]class PrintSomeThing{
  public function __construct($str = &#39;&#39;)
  {
     echo sprintf("打印字符串 %s \n", $str);
  }}#[PrintSomeThing("hello world")]class AnotherThing{}// 使用反射读取住解$reflectionClass = new ReflectionClass(AnotherThing::class);$attributes = $reflectionClass->getAttributes();foreach($attributes as $attribute) {
  $attribute->newInstance(); //获取注解实例的时候,会输出 ‘打印字符串 Hello world’}
로그인 후 복사

주석 기능에 대한 개인적인 이해 요약 주석을 사용하면 클래스를 낮은 디커플링과 높은 응집력을 가진 메타데이터 클래스로 정의할 수 있습니다. 사용 시 Annotation을 통해 유연하게 도입할 수 있으며, Annotation된 클래스 인스턴스를 반영하면 호출 목적을 달성할 수 있습니다.

**주석이 달린 클래스는 인스턴스화될 때만 호출됩니다


생성자 속성 승격

클래스 속성의 수정자 범위를 생성자에서 선언할 수 있다는 것이 무슨 뜻인가요? :
<?php
    // php8之前
    class User
    {
        protected string $name;
        protected int $age;
        public function __construct(string $name, int $age)
        {
            $this->name = $name;
            $this->age = $age;
        }
    }
    //php8写法,
    class User
    {
        public function __construct(
            protected string $name,
            protected int $age
        ) {}
    }
로그인 후 복사

코드 양을 절약하므로 클래스 속성을 별도로 선언할 필요가 없습니다.

Union type

은 매개변수 유형이 불확실한 시나리오에서 사용할 수 있습니다.

예:

    function printSomeThing(string|int $value)
    {
        var_dump($value);
    }
로그인 후 복사

일치 표현식

은 스위치 캐시와 유사하지만 엄격 = = = Match

예:

<?php$key = &#39;b&#39;;$str = match($key) {
    &#39;a&#39; => 'this a',
    'c' => 'this c',
     0  => 'this 0',
    'b' => 'last b',};echo $str;//输出 last b
로그인 후 복사

새로운 Nullsafe 연산자
<?php
   class User
   {
       public function __construct(private string $name)
       {
           //啥也不干
       }
       public function getName()
       {
           return $this->name;
       }
    }
    //不实例 User 类,设置为null
    $user = null;
   echo $user->getName();//php8之前调用,报错
   echo $user?->getName();//php8调用,不报错,返回空
로그인 후 복사

단순화된 is_null 판단

권장 학습: "
PHP 비디오 튜토리얼
"

위 내용은 예제를 통해 PHP8의 새로운 기능 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

php5와 php8의 차이점은 무엇입니까 php5와 php8의 차이점은 무엇입니까 Sep 25, 2023 pm 01:34 PM

php5와 php8의 차이점은 성능, 언어 구조, 유형 시스템, 오류 처리, 비동기 프로그래밍, 표준 라이브러리 기능 및 보안 측면에서 있습니다. 자세한 소개: 1. 성능 향상 PHP5와 비교하여 PHP8은 JIT 컴파일러를 도입하여 일부 고주파 실행 코드를 컴파일하고 최적화하여 실행 속도를 향상시킵니다. PHP8에는 몇 가지 새로운 언어 구조와 기능이 도입되었습니다. PHP8은 명명된 매개변수를 지원하므로 개발자는 매개변수 순서 대신 매개변수 이름을 전달할 수 있습니다.

php8에 mysql 확장을 추가하는 방법 php8에 mysql 확장을 추가하는 방법 Oct 07, 2023 pm 03:31 PM

php8에 mysql 확장을 추가하는 단계는 다음과 같습니다. 1. MySQL 클라이언트 라이브러리를 설치합니다. 2. PHP 8용 개발 도구를 설치합니다. 3. MySQL 확장 소스 코드를 다운로드합니다. 5. MySQL 확장을 활성화합니다. MySQL 확장; 6. 웹 서버만 다시 시작합니다.

apache2.4+php8.0의 설치 및 구성 방법에 대한 자세한 그래픽 설명 apache2.4+php8.0의 설치 및 구성 방법에 대한 자세한 그래픽 설명 Dec 06, 2022 pm 04:53 PM

이번 글에서는 apache2.4 설치 방법과 php8.0 설정 방법을 소개하겠습니다. 글에는 사진과 함께 apache2.4+php8.0 설정 방법이 자세히 나와 있습니다.

php8에서 데이터베이스에 연결하는 방법 php8에서 데이터베이스에 연결하는 방법 Nov 16, 2023 pm 02:41 PM

PHP8은 mysqli와 PDO를 사용하여 데이터베이스에 연결할 수 있습니다. 자세한 소개: 1. 연결할 데이터베이스 서버 이름, 사용자 이름, 비밀번호 및 데이터베이스 이름을 전달하여 mysqli를 사용하여 데이터베이스에 연결합니다. 그런 다음 `connect_error` 속성을 사용하여 연결 성공 여부를 확인하고 연결이 실패하면 오류 메시지를 출력합니다. 마지막으로 `close()` 메소드를 호출하여 연결을 닫습니다. 2. PDO를 사용하여 데이터베이스에 연결하고 데이터베이스 서버 이름, 비밀번호, 데이터베이스 이름 등을 전달하여 연결합니다.

php8 데이터 유형을 변환하는 방법 php8 데이터 유형을 변환하는 방법 Nov 16, 2023 pm 02:51 PM

php8 데이터 형식의 방법에는 문자열을 정수로 변환, 정수를 문자열로 변환, 문자열을 부동 소수점 수로 변환, 부동 소수점 수를 문자열로 변환, 배열을 문자열로 변환, 문자열을 배열로 변환, 부울 값을 정수로 변환, 정수를 문자열로 변환 등이 있습니다. 부울 값 및 변수 유형 결정 및 변환. 자세한 소개: 1. 문자열을 정수로 변환하는 작업에는 intval() 함수와 (int) 강제 형식 변환이 포함됩니다. 2. 정수를 문자열로 변환하는 작업에는 strval() 함수와 (문자열) 강제 형식 변환이 포함됩니다. 부동 소수점에 대한 문자열 등등.

PHP 8의 JIT에 대한 심층적인 살펴보기 PHP 8의 JIT에 대한 심층적인 살펴보기 Apr 25, 2022 pm 08:46 PM

이 기사에서는 PHP 8의 JIT를 안내하고 JIT가 해석 프로세스에 참여하는 방법에 대해 설명합니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.

php8에는 어떤 성능 향상이 있습니까? php8에는 어떤 성능 향상이 있습니까? Dec 21, 2023 pm 02:44 PM

php8의 향상된 성능에는 다음이 포함됩니다. 1. JIT 컴파일러 도입 3. 가비지 수집 메커니즘 개선 5. 새로운 언어 기능 최적화 8. 새로운 메모리 관리 메커니즘을 도입합니다. 9. 코드 생성을 최적화합니다. 자세한 소개: 1. JIT 컴파일러의 도입 PHP8은 보다 효율적인 실행을 위해 PHP 코드를 기계어 코드로 변환할 수 있는 동적 컴파일 기술인 JIT 컴파일러를 도입합니다.

php8에는 어떤 기능이 있나요? php8에는 어떤 기능이 있나요? Dec 21, 2023 pm 02:54 PM

php8의 기능: 1. 명명된 매개변수, 4. 주석, 6. 일치 표현식, 7. 향상된 유형 시스템, 10. 일관성 개선. 자세한 소개: 1. JIT 컴파일러인 PHP8은 PHP 코드를 기본 기계 코드로 컴파일하여 프로그램의 실행 속도를 향상시키는 JIT(Just-In-Time) 컴파일 기술을 도입합니다. 2. 명명된 매개변수, PHP8은 명명된 매개변수를 지원하여 다음을 사용할 수 있습니다. 함수 호출 시 매개변수 이름 등

See all articles