PHPにおけるOOPの安全な抽出演算子
安全な抽出演算子 ?-> は、
null になる可能性のあるオブジェクトの
メソッドやプロパティへ安全にアクセスすることを可能にします。
例を見てみましょう。 次のクラスがあるとします:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
このクラスのオブジェクトを作成します:
<?php
$user = new User('john');
?>
そのプロパティの値を出力します:
<?php
$user = new User('john');
echo $user->name;
?>
ここで、オブジェクトの代わりに
null が入ってしまったとします。この場合、
ユーザー名にアクセスしようとすると
エラーが発生します:
<?php
$user = null;
echo $user->name; // エラー
?>
このエラーを回避するために、 安全な抽出演算子を使用することができます:
<?php
$user = null;
echo $user?->name;
?>
以下のコードを安全な抽出演算子を使って 改善してください:
<?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;
?>