التخطي إلى المحتوى
الدرس الرابع  –  Object-Oriented PHP)  Key OOP Concepts )

Object-Oriented PHP

السلام عليكم ورحمة الله 
مرحبا بكم من جديد في دورة البرمجة الموجهة. نكمل حديثنا عن Getters and Settersالـ 
كيفية بناء Getters and Setters

 

بالرغم من ان الـ SETTER & GETTER لها فائدة إلا أنها في المشاريع المعقدة تفقد فعاليتها لذلك أتت إمكانية عمل دوال مشابهة لهذه الدوال في لغة الPHP  على طريقة الجافا والسي# بحث تضمن حل المشكلة (وهي هنا إعطاء قيمة لمتغير أو إرجاع قيمة متغير ) على أسلوبك الخاص وهذا افضل بكثير .

 

 

مثال: إذا كان عندنا المتغير $name وكان Private  يمكن ان تكون دوال SETTER & GETTER لهذا المتغير كالتالي:
لكن الكود أعلاه هو للخاصية $name فقط وقد لا يلائم متغيرات أخر إلا بعد التعديل لكن يمكن ملائمة هذا كود مع كل المتغيرات بوضع البراميترات في الدالة getName(parameters) . ايضا يمكن إضافة شروط اخرى للتحقق من قيم المتغيرات هل هي المطلوبة ام لاوهكذا
<?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; 

 

   // Getter 

 

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

 

فبدلا من المعامل <- نستخدم :: للإشارة إلى انه ثابت.
إلى هذه النقطة نكون قد وصلنا إلى نهاية درس اليوم موعدنا يوم السبت والثلاثاء من كل الاسبوع ان شاء الله

عن الكاتب

التعليقات

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Shares