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