PHP OOP에서 안전한 추출 연산자

안전한 추출 연산자 ?->는 null일 수 있는 객체의 메서드와 프로퍼티에 안전하게 접근할 수 있게 해줍니다.

예제를 통해 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:

php<?php
  class User
  {
    public $name;
    
    public function __construct($name)
    {
      $this->name = $name;
    }
  }
?>

이 클래스의 객체를 생성해 보겠습니다:

php<?php
  $user = new User('john');
?>

객체의 프로퍼티 값을 출력해 보겠습니다:

php<?php
  $user = new User('john');
  echo $user->name;
?>

이제 객체 대신 null이 있다고 가정해 보겠습니다. 이 경우 사용자 이름에 접근하려고 하면 오류가 발생합니다:

php<?php
  $user = null;
  echo $user->name; // 오류
?>

오류를 방지하기 위해 안전한 추출 연산자를 사용할 수 있습니다:

php<?php
  $user = null;
  echo $user?->name;
?>
Задание 1

안전한 추출 연산자를 사용하여 다음 코드를 개선하세요:

php<?php
  class Employee {
    public $name;
    public $salary;
    
    public function __construct($name, $salary)
    {
      $this->name = $name;
      $this->salary = $salary;
    }
  }
  
  $employee = new Employee('john', 1000);
  
  echo $employee->name;
  echo $employee->salary;
?>