Object-Oriented PHP
الدرس الرابع Key OOP Concepts
السلام عليكم ورحمة الله
مرحبا بكم من جديد في دورة البرمجة الموجهة. نكمل حديثنا عن Getters and Settersالـ
كيفية بناء Getters and Setters
بالرغم من ان الـ SETTER
& GETTER
لها فائدة إلا أنها في
المشاريع المعقدة تفقد فعاليتها لذلك أتت إمكانية عمل دوال مشابهة لهذه الدوال في
لغة الPHP على
طريقة الجافا والسي# بحث تضمن حل المشكلة (وهي هنا إعطاء قيمة لمتغير أو إرجاع
قيمة متغير ) على أسلوبك الخاص وهذا افضل بكثير .
مثال: إذا كان عندنا المتغير $name وكان Private يمكن ان
تكون دوال SETTER & GETTER لهذا المتغير كالتالي:
<?php
class Employee {
private $name;
private $age;
private $job;
// Getter
public function getVar($var) {
// هنا تتغير الخاصية بتغير
$var
return $this->$var;
}
// Setter
public function setVar($var,$value) {
$this->$var = $value;
}
}
?>
$me
= new Employee();
$me->getVar("name");
// هنا يتم اخذ name
ووضعها
بدل $var لتصبح return $this->name;
$me->getVar("age");
// هنا يتم اخذ age ووضعها
بدل $var لتصبح return $this->age;
$me->getVar("job");
// هنا يتم اخذ job ووضعها بدل $var لتصبح return $this->job;
$me->setVar('name','muhammad');
هنا يصبح السطر $this->$var = $value; كالتالي
$this->name
= 'muhammad';
$me->setVar('age',23);
هنا يصبح السطر $this->$var = $value; كالتالي
$this->age
= 23;
$me->setVar(' job ','programmer');
هنا يصبح السطر $this->$var = $value; كالتالي
$this->job
= 'programmer';
كما يمكن
إضافة التحقق من القيمة كالتالي
<?php
class Employee{
private $name;
private $age;
private $job;// Getterpublic function getVar($var) {if(isset($this->$var){return $this->$var;}else{Echo "attribute " . $var . " is Empty";}}// Setter
public function setVar($var,$value,$type) {
switch($type){
case 'string':if(is_string($this->$var)){ $this->$var = $value;}else{echo "variable type error";};break;case 'int':if(is_int ($this->$var)){ $this->$var = $value;}else {echo "variable type error";};break;case 'array':if(is_array($this->$var)){ $this->$var = $value;}else{echo "variable type error";};break;case 'float':if(is_float($this->$var)){ $this->$var = $value;}else{echo "variable type error";};break;}}}?>
الثوابت Constants:
تعريف الثوابت او القيم داخل الكلاس عندما
لا يكون هالك تغير في القيمة اثناء العمل ولا تتغير القيمة في أي object
تم نسخه
من الكلاس والصيغة العامة لتعريف الثوابت:
const NAME = 'VALUE';
class mathFunctions{
const PI = '3.14159265';
const E = '2.7182818284';const EULER = '0.5772156649';// Define other constants and methods here...}
يتم إستدعاء الثوابت كالتالي
echo mathFunctions::PI;
فبدلا من
المعامل <- نستخدم :: للإشارة إلى انه ثابت.
إلى هذه النقطة نكون قد وصلنا إلى نهاية درس اليوم موعدنا يوم السبت والثلاثاء من كل الاسبوع ان شاء الله



0 comments :
إرسال تعليق