عضویت در سایت

ورود

فراموشی رمز عبور

رمز عبور خود را فراموش کرده اید؟ ایمیل خود را وارد کنید

ورود

عضویت در سایت

رایگان ثبت نام کنید و سوالات خود را بپرسید، همچنین میتوانید در پاسخگویی به سوالات دیگر کاربران نیز سهیم باشید، هر مشکلی در ثبت نام یا ورود داشتید با ایمیل beporsam@gmail.com در ارتباط باشید

در بین 1171 آموزش و 2026 پرسش به دنبال چه هستید؟

ویندوز
نصب آنلاین ویندوز

ویندوز 7,8,10,11
مشاوره
مشاوره خرید لپ تاپ و کامپیوتر

مشاوره حرفه ای دریافت کن
بلاگ
مقالات آموزشی

1k+
پشتیبانی آنلاین

سخت افزار/نرم افزار

آموزش شی گرایی در PHP – کلاس و اشیاء

سلام

با دومین قسمت از آموزش OOP یا شی گرایی در PHP در خدمتتون هستیم؛ در این جلسه میخواهیم بپردازیم به مفهوم کامل تری از Class و Object ها و چند مثال بزنیم، در ادامه همراه بپرسم باشید.

کلاس و اشیاء در PHP

کلاس و اشیاء در PHP

درباره OOP

بیایید فرض کنیم، کلاسی به اسم میوه(Fruit) داریم که یک میوه میتواند خصوصیاتی مانند نام، رنگ، وزن و … داشته باشید. ما میتوانیم برای این کلاس متغیرهایی مانند color,name و weight را برای نگهداری مقادیر این خصوصیات تعریف کنیم.

تعریف یک کلاس(Class)

برای تعریف کلاس از کلمه کلیدی class استفاده میکنیم که به دنبال آن نام کلاس و یک جفت کروشه {} قرار میگیرد، در قطعه کد زیر یک کلاس تعریف کردیم:

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

در ادامه ما یک کلاس به اسم Fruit ساختیم که در این کلاس دو ویژگی name$ و color$ را ایجاد کردیم که برای اینکه به مقدار این دو ویژگی دسترسی داشته باشیم از دو متد set_name و get_name استفاده کردیم.

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

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

نکته: در کلاس ها، متغیرها را ویژگی و توابع را متد(Method) می نامیم.

تعریف یک شیء(Objcet)

کلاس ها بدون اشیاء هیچ چیز نیستند! ما میتوانیم از یک کلاس چندین شیء(object) ایجاد کنیم. هر شیء دارای کلیه خصوصیات و متدهای تعریف شده در کلاس است. اما دارای مقادیر مختلفی از ویژگی خواهند بود.

برای ایجاد یک شیء از کلاس از کلمه ی کلیدی new استفاده میکنیم.

در مثال زیر apple$ و banana$ نمونه هایی از کلاس 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();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');

echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>

خروجی قطعه کد بالا، چاپ دو کلمه Banana و Apple می باشد.

مطلب پیشنهادی:  توابع وردپرس - توابع نویسنده ها

در مثال زیر، دو Method دیگر برای تنظیم و بدست آوردن ویژگی color$ به کلاس Fruit اضافه میکنیم:

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

خروجی قطعه کد بالا:

خروجی قطعه کد بالا

خروجی قطعه کد بالا

کلمه کلیدی this$ در PHP

کلمه ی کلیدی this$ به شیء فعلی اشاره دارد و فقط و فقط در داخل متدها میتوان از آن استفاده کرد.

به مثال زیر نگاه کنید:

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

بنابراین، کجا می توانیم مقدار ویژگی name$ را تغییر دهیم؟! دو راه وجود دارد:

1- درون کلاس (با افزودن متد ()set_name و استفاده از this$):

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

2- خارج از کلاس (با تغییر مستقیم مقدار خاصیت):

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

instanceof در کلاس

برای بررسی اینکه شیء به کلاس خاصی تعلق دارد یا خیر میتوانید از کلمه کلیدی instanceof استفاده کنید که خروجی به صورت true یا false برگردانده میشود:

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

خروجی قطعه کد بالا:

خروجی instanceof

خروجی instanceof

این قسمت از آموزش به پایان رسید، مشکلی در رابطه با آموزش بالا داشتید می توانید در سایت بپرسید.

موفق باشید.

درباره احمد آخوندیمدیر سایت

همیشه در تلاش برای یادگیری :) ارتباط با من: 09159352892

دنبال کردن

ارسال نظر

رفتن به بالا

سامانه آموزشی و خدماتی بپرسم

اولین وب سایت آموزشی و پرسش و پاسخ در ایران

بپرسم را میتوان به عنوان مرجعی برای آموزش و حل مشکلات دانست، در بپرسم سعی کرده ایم آموزش های برنامه نویسی، طراحی سایت، کار با نرم افزارها ها و… را آموزش دهیم. همچنین محیطی فراهم کرده ایم تا کاربران بتوانند در این محیط سوالات خود را بپرسند و مشکل خود را حل کنند.