الدرس الرابع - Object-Oriented PHP) Key OOP Concepts ) | مايندز | علم ينتفع به
الأتصال بنا 61109-264-012

السبت، 28 ديسمبر 2013

الدرس الرابع - Object-Oriented PHP) Key OOP Concepts )

Object-Oriented PHP

  الدرس الرابع Key OOP Concepts


السلام عليكم ورحمة الله 
مرحبا بكم من جديد في دورة البرمجة الموجهة. نكمل حديثنا عن 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;

فبدلا من المعامل <- نستخدم :: للإشارة إلى انه ثابت.

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



0 comments :

إرسال تعليق