‎‎كلاسها واشياءPHP OOP-‎ Classes and Objects -‎

Previous >    <Next  

‎يك كلاس(class) ‎يك الگو براي اشياء است وشئ(object) ‎نمونه اي از كلاس ميباشد

‎فرض كنيد كلاسي بنامfruit داشته باشيم .اين كلاس داراي مشخصات نام،رنگ و وزن باشد .براي ‎اين مشخصات متغيرهاي‎$weight , $color , $name‎ در نظر ميگيريم، كه مقادير ‎آن مشخصات را در آنها نگه داريم.

‎هنگاميكه كه يك شئ واقعي مثلbanan,appl و غيره از آن ايجاد ميشوند، همه مشخصات ورفتارهاي ‎آن كلاس را بارث ميبرند .اما هر شئ مقاديري براي مشخصات خود دارد.

‎‎تعريف كلاسdefine a Class -‎

‎يك كلاس با كي ورد‎class‎ تعريف ميگردد .بدنبال آن نام كلاس ومشخصات ‎ومتدهايش در داخل{ } ‎ذكر ميگردد، مطابق فرم كلي زير:

 <?php 
class Fruit {
  // code goes here...
}
?> 

‎در اسكريپت زير كلاسي بانامfruit وشامل دو ويژگي ‎$color , $name‎‎وهمچنين دو متد ‎get_name()‎ , set_name()‎‎‎براي مقدار دهي و دريافت مقدار . تعريف مطابق كد زير

<?php 
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
?>

‎‎نكته ـ در تعريف كلاس متغيرهاproperties وتوابع راmethod مي نامند.

‎كلاسها بدون اشيا چيزي نيستند، اما ميتوان چندين شئ از آن كلاس ايجاد نمود .هر شئ ايجادي ‎تمام ويژگي ومتدهاي كلاسش را دريافت ميكند ولي ويژگي يا مشخصه آن مقدار متفاوتي ميتواند ‎داشته باشد.

‎‎تعريف شئDefine Objects -‎

‎براي ايجاد شئ ازكلمه كليدي‎ new ‎ استفاده ميشود .در مثال زير نمونه اي از ‎اشياء كلاسfruit ايجاد شده است . اين اشياء‎$banana , $apple‎ ميباشند.

‎‎مثال ـ ايجاد شئ

--(go to editor for change code and run)

‎‎مثال ـ در مثال زير دو متد ديگر براي مقدار دهي‎$color‎ و دريافت آن اضافه شده است.

<?php 
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
  function set_color($color) {
    $this->color = $color;
  }
  function get_color() {
    return $this->color;
  }
}

$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?> 

--(go to editor for change code and run)

‎‎كلمه كليديPHP $this -‎

‎‎كلمه كليدي‎ $this‎ اشاره به شي جاري دارد وفقط در داخل متد هاي آن شئ موجود است.

‎‎مثال ـ به مثال زير توجه كنيد، ايجاد شئ‎ $apple‎ با ويژگي‎$name‎

 <?php 
class Fruit {
  public $name;
}
$apple = new Fruit();
?> 

‎‎بنا براين بدو روش ميتوان مقدار ويژگي آن شئ را تغيير داد .مطابق زير:

‎ 1‎ـ در داخل كلاس، بعنوان ‎مثال براي ويژگي‎$name‎ با اضافه نمودن متد‎set_name( )‎ واستفاده ‎از‎$this‎ در داخل متد مطابق مثال زير

‎‎مثال ـ تغيير ويژگي در داخل متد با‎ $this

<?php 
class Fruit {
  public $name;
  function set_name($name) {
    $this->name = $name;
  }
}
$apple = new Fruit();
$apple->set_name("Apple");

echo $apple->name;
?> 

--(go to editor for change code and run)

‎‎ 2‎ـ تغيير ويژگي خارج از تعريف كلاس

‎‎مثال ـ تغيير مقدار‎$name‎ خارج ازكلاس‎ $fruit

<?php 
class Fruit {
  public $name;
}
$apple = new Fruit();
$apple->name = "Apple";

echo $apple->name;
?> 

--(go to editor for change code and run)

‎‎عضويتPHP -‎ instanceof

‎با كلمه كليدي‎instanceof‎ ميتوان كنترل نمود كه شئي عضو كلاس خاصي هست ‎ياخير.

‎‎مثال ـ بررسي عضويت شئي دركلاس

<?php 
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?> 

‎‎كه مثال كامل مطابق زيراست.

<?php 
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}

$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>

--(go to editor for change code and run)


Previous >    <Next