Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 8의 생성자 속성 승격

<시간/>

PHP 8에서는 생성자 속성 승격이 추가되었습니다. 단순한 객체를 구성하는 동안 많은 상용구 코드를 줄이는 데 도움이 됩니다. 이 기능을 사용하면 클래스 필드, 생성자 정의 및 변수 할당을 모두 하나의 구문으로 결합하여 생성자 매개변수 목록으로 만들 수 있습니다.

클래스 속성과 생성자를 지정하는 대신 생성자 속성 승격을 사용하여 모두 결합할 수 있다고 말할 수 있습니다.

예시 1:PHP 7 코드

<?php
   class Account {
      public float $a;
      public float $b;
      public float $c;
      public function __construct(
         float $a = 0.0,
         float $b = 0.0,
         float $c = 0.0,
      )
      {
         $this->a = $x;
         $this->b = $y;
         $this->c = $z;
      }
   }
?>

예시 2:PHP 8 코드

PHP 8에서 위의 PHP 7 코드를 다음과 같이 다시 작성할 수 있습니다. -

<?php
   class Account {
      public function __construct(

         public float $a = 0.0,
         public float $b = 0.0,
         public float $c = 0.0,
      ) {}
   }
   $Account =new Account (10.90,20.0,30.80);
      print_r($Account->a);
      print_r($Account->a);
      print_r($Account->a);
?>

출력

10.9 20 30.8

위의 코드에서는 생성자 서명에서 속성 정의와 채우기 인라인을 결합했습니다. 이 코드는 반복을 제거합니다.

예시 3:생성자 속성 프로모션을 위한 PHP 8 코드

<?php
   class Employee {
      public function __construct(
         public int $id,
         public string $name,
      ) {}
   }
   $employee = new Employee(11, 'Alex');
      print_r($employee->id);
      print_r($employee->name);
?>

출력

11 Alex