ตัวดำเนินการเข้าถึงอย่างปลอดภัยใน OOP ใน PHP
ตัวดำเนินการเข้าถึงอย่างปลอดภัย ?-> ช่วยให้
สามารถเข้าถึงเมธอดและคุณสมบัติของวัตถุได้อย่างปลอดภัย
แม้ว่าวัตถุเหล่านั้นจะเป็น 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;
?>