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;
?>