Toán tử truy xuất an toàn trong OOP trong PHP
Toán tử truy xuất an toàn ?-> cho phép
truy cập một cách an toàn vào các phương thức và thuộc tính của đối tượng,
mà các đối tượng đó có thể là null.
Hãy xem xét một ví dụ. Giả sử chúng ta có lớp sau:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Hãy tạo một đối tượng của lớp này:
<?php
$user = new User('john');
?>
Hãy in ra giá trị thuộc tính của nó:
<?php
$user = new User('john');
echo $user->name;
?>
Bây giờ giả sử xảy ra trường hợp thay vì
đối tượng, chúng ta có null. Trong trường hợp này
việc cố gắng truy cập vào tên người dùng
sẽ dẫn đến lỗi:
<?php
$user = null;
echo $user->name; // lỗi
?>
Để tránh lỗi, chúng ta có thể sử dụng toán tử truy xuất an toàn:
<?php
$user = null;
echo $user?->name;
?>
Hãy cải thiện đoạn mã sau bằng cách sử dụng toán tử truy xuất an toàn:
<?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;
?>