طرفه نگاران کهن
  • صفحه اصلی
  • خدمات
    • توسعه نرم افزار
      • دسکتاپ اپلیکیشن
      • وب اپلیکیشن
      • موبایل اپلیکیشن
      • امنیت
      • طراحی مدل کسب و کار
      • اجرای پروژه های BPM
    • طراحی سایت
      • سایت های اختصاصی
      • سایت فروشگاهی
      • سایت آموزشی
      • سایت شرکتی
      • سایت های خبری
      • سایت های پزشکی
    • طراحی و دیزاین
      • لوگو و نشانه
      • ست اداری
      • پوستر
      • کاتالوگ و بروشور
      • طراحی بیلبورد
      • تصویرسازی (تبلیغاتی)
      • تصویر سازی (فتومونتاژ)
    • دیججیتال مارکتینگ
      • تبلیغات در گوگل
      • بازاریابی محتوای سایت
      • بازاریابی محتوای اینستاگرام
      • بهینه سازی موتور جستجو
  • آکادمی
  • ارتباط با ما
    • تماس با ما
    • درباره ما
    • مشتریان ما
    • فرصت های شغلی
  • درخواست مشاوره
  • جستجو
  • منو منو

معرفی برنامه نویسی شی گرا در PHP

شی گرایی در php ،  نوعی رویکرد برنامه نویسی است که در آن از اشیاء (Object)

 و کلاس‌ها (Class) استفاده می‌شود. امروزه بیشتر از جاوا و C++ برای برنامه نویسی

 شی گرا استفاده می‌شود.
PHP4 برای برنامه نویسی شی گرا دارای محدودیت‌هایی بود، اما object model در 

PHP5 برای داشتن کارایی و ویژگی‌های بیشتر از نو نوشته شده است. حالا PHP5 دارای

 object model کاملی است.

شی چیست ، شی گرایی در php

ایده‌ی اصلی یک زبان ، شی گرایی در php این است که مجموعه‌ای از متغیرها

(Variable) و توابع (Function) را در یک واحد جمع کنیم و اینطور می‌توانیم از آنها

در مقابل دخالت‌های بیرونی و سوءاستفاده محافظت کنیم.
به این واحد شی (Object) می‌گوییم. یک شی روی داده‌ها کار می‌کند. مکانیزمی

که داده‌ها و توابع را کنار هم نگه می‌دارد، کپسوله سازی (Encapsulation) نامیده می شود.
این ویژگی به استفاده‌ی مجدد از کد در پروژه‌های مختلف کمک می‌کند. توابعی که در یک شی

تعریف می‌شوند، روش رسیدن به داده‌ها را مشخص می‌کنند. توابع یک شی، متد (Method)

نامیده می‌شوند و متدهای یک شی به متغیرهایِ آن دسترسی دارند.
این متغیرها property نامیده می‌شوند.

شکل زیر اجزاء یک شی را نشان می‌دهد.

کلاس ،برنامه نویسی ، شی گرایی در php

شی گرایی در php ، یک کلاس ساختار یا نمونه‌ای است که یک شئ از روی آن

ساخته می‌شود. یک کلاس اجزای اصلی را تعریف می‌کند. اینطور نمونه‌های یک کلاس

می‌توانند دارای حالت (State) و رفتار (Behaviour) باشند.
اعضای فیلدهای داده‌ای (Data Field Members) به شی کلاس این امکان را می‌دهند که

دارای یک حالت باشد. از طرفی متدها رفتار یک شئ از کلاس را تعیین می‌کنند. شکل زیر

اجزاء یک کلاس را نشان می‌دهد.

PHP: ساخت کلاس و نمونه‌سازی (Instantiation)

  • تعریف یک کلاس با کلمه‌ی کلیدی class صورت می‌گیرد. بعد از آن نام کلاس آورده می‌شود.
  • بعد از {} آورده می‌شود که ثابت‌ها (constant)، متغیرها (Property) و توابع (متد) مربوط به
  • این کلاس در این دو {} قرار می‌گیرند.
  • یک نام کلاس مجاز (نمی‌تواند یکی از کلمات کلیدی باشد)، با یک حرف یا _ شروع می‌شود و می‌تواند
  • شامل حروف، اعداد و _، به هر تعدادی، که کاربر می‌خواهد، باشد.
  • برای جدا کردن نام کلاس از سایر identifierها، معمولاً آن را با حرف بزرگ می‌نویسند.
  • یک نمونه (instance) شئ‌ای است که از یک کلاس موجود ایجاد شده است.
  • ساخت یک نمونه (instance) از یک کلاس موجود را نمونه‌سازی شی (Instantiating the object) می‌نامند.
  • اگر بیرون از کلاس باشیم و بخواهیم شئ‌ای بسازیم، باید از کلمه‌ی کلیدی new استفاده کنیم.
  • باید قبل از نمونه‌سازی، کلاس را تعریف کرده باشیم.

مثال:

تنظیمات Propertyها

  • متغیرهای عضو کلاس (Class member variable)، Property نامیده می‌شوند.

گاهی به آنها شناسه (خصیصه) (Attribute) یا فیلد (Field) نیز گفته می‌شود.

  • Propertyها دارای داده‌ی به خصوصی هستند و به کلاسی که در آن تعریف شده‌اند، مرتبطند.
  • تعریف یک Property در یک کلاس کاری ساده است. اول یکی از کلمات کلیدی public، private

یا protected را انتخاب کنید. بعد از آن، از یک تعریف ساده‌ی متغیر استفاده کنید. اگر از var برای تعریف

آن استفاده کنیم (تا با نسخه‌ی PHP4 نیز سازگاری داشته باشیم)، Property به صورت public تعریف خواهد شد.

    • public: یک کلاس دیگر یا خود اسکریپت (Script) می‌تواند از بیرونِ کلاس به این Property دسترسی داشته باشد.
    • private: یک کلاس دیگر یا خود اسکریپت (Script) اصلاً امکان دسترسی به این Property را ندارد.
    • protected: تنها کلاسی که فرزند این کلاس (کلاسی که Property در آن تعریف شده) باشد
    • و دارای یک Property یا متد protected باشد، می‌تواند به این Property دسترسی داشته باشد.
  • می‌توان در همه‌ی data contextهای ایستا، که شامل تعریف Property نیز می‌شود،

ز دستور nowdocs (از PHP 5.3.0 به بعد) استفاده کرد.

مثال:

بعد از نمونه‌سازی یک شئ، می‌توانید با استفاده از object و عملگر -> به Property یک کلاس

دسترسی داشته باشید. نمی‌توانید از بیرون از متدِ کلاس به هر عضوی که با کلمه‌ی

کلیدی private یا protected تعریف شده باشد، دسترسی داشته باشید.

تنظیمات متدها

  • توابعی که در یک کلاس تعریف می‌شوند، متد نام دارند.
  • متد یک کلاس دقیقاً شبیه توابع PHP است.
  • تعریف یک متد در یک کلاس کاری ساده است. اول از یکی از کلمات کلیدی public

private یا protected استفاده کنید. بعد از آن از یک نام برای متد انتخاب کنید.

    • public: از بیرونِ کلاس می‌توان به متد دسترسی داشت.
    • private: از بیرونِ کلاس نمی‌توان به متد دسترسی داشت.
    • protected: تنها کلاسی که فرزند این کلاس (کلاسی که متد در آن تعریف شده)

باشد و دارای یک Property یا متد protected باشد، می‌تواند به این متد دسترسی داشته باشد.

  • یک نام متد مجاز (نمی‌تواند یکی از کلمات کلیدی باشد)، با یک حرف یا _ شروع می‌شود

و می‌تواند شامل حروف، اعداد و _، به هر تعدادی، که کاربر می‌خواهد، باشد.

  • بدنه‌ی متد در یک جفت {} قرار می‌گیرد که شامل کد هستند. } ابتدایی نشان‌دهنده‌ی

ابتدای خطوط کد متد است و } بعدی انتهای متد را نشان می‌دهد.

  • اگر متد با یکی از کلمات کلیدی public، private و protected تعریف نشده باشد،

به صورت پیش‌فرض public درنظر گرفته می‌شود.

  • می‌توان با استفاده از دستور $this (با فرمت $this->property) به propertyها و متدهای

نمونه‌ی کنونی دسترسی داشت، اما تنها برای propertyهای غیر استاتیک.

مثال:

بعد از نمونه‌سازی یک شئ، می‌توانید با استفاده از object و عملگر -> به Property یک کلاس

دسترسی داشته باشید. در مثال بعدی، متد customize_print() با استفاده از دستور echo زبان

PHP یک رشته (string) را با رنگ و اندازه‌ای مشخص در یک پاراگراف HTML نشان خواهد داد.

232

PHP: عملگر Scope Resolution (::)

در PHP، عملگر Scope Resolution با نام Paamayim Nekudotayim نیز شناخته می‌شود

که در زبان عبری به معنای “دو دونقطه” است. “::” نشانه‌ای است که به شما کمک می‌کند

به متدها یا propertyهای استاتیک، ثابت یا overridden یک کلاس دسترسی داشته باشید.

PHP: ثابت در کلاس (Constant)

  • موجودیتی خاص که در قالب یک کلاس ثابت باقی می‌ماند.
  • برخلاف تعریف عادی متغیرها، جلوی نام ثابت‌ها علامت ($) قرار نمی‌گیرد.
  • واسط‌ها (Interface) هم می‌توانند ثابت داشته باشند.
  • وقتی با استفاده از دستور $classname :: constant یک ثابت را از یک کلاس

فراخوانی می‌کنید، “classname” می‌تواند درواقع یک متغیر باشد.

  • از PHP 5.3 به بعد، می‌توانید با ارجاع متغیر (Variable Reference) به ثابت یک کلاس

استاتیک دسترسی پیدا کنید (مثلاً: classname :: $varConstant)

درک مفاهیم public، private و protected برای propertyها

propertyها می‌توانند public، private یا protected باشند. public یعنی از هرجایی می‌توان

به property دسترسی داشت. private یعنی تنها کلاسی که عضو را تعریف می‌کند، می‌تواند به 

property دسترسی داشته باشد.
protected یعنی می‌توان داخل کلاس به property دسترسی داشت و هم‌چنین کلاس‌های فرزند

و والد نیز می‌توانند به آن دسترسی داشته باشند.

مثال:

درک مفاهیم public، private و protected برای متدها

متدها می‌توانند public، private یا protected باشند. public یعنی از هرجایی می‌توان به

متد دسترسی داشت. private یعنی تنها کلاسی که عضو را تعریف می‌کند، می‌تواند

به متد دسترسی داشته باشد.
protected یعنی می‌توان داخل کلاس به متد دسترسی داشت و هم‌چنین کلاس‌های فرزند

و والد نیز می‌توانند به آن دسترسی داشته باشند.

مثال:

PHP: متدهای سازنده‌ (Constructor Methods)

  • سازنده یک متد توکار خاص است که در PHP5 اضافه شده است و برنامه‌نویسان

می‌توانند آن را برای کلاس‌ها تعریف کنند.

  • سازنده‌ها این امکان را فراهم می‌کنند که با ساخت یک شئ، propertyهای آن ساخته

و مقداردهی اولیه شوند (به عبارت دیگر مقادیر propertyها).

  • با ساخت یک شئ، کلاس‌های دارای یک سازنده به صورت خودکار اجرا می‌شوند.
  • متد “construct” با (__) شروع می‌شود.
  • اگر با ایجاد شئ قصد انجام کاری را ندارید، یا نمی‌خواهید مقدار property را انتقال دهید

لازم نیست سازنده داشته باشید.

  • PHP تنها یک سازنده را فراخوانی می‌کند.

سینتکس (syntax) کلی برای تعریف سازنده به صورت زیر است:

نوع آرگومان‌های argument1، argument2 تا argumentN متغیر است.

PHP: متدهای مخرب یا تخریب‌کننده (Destructor Methods)

  • مخرب‌ها نقطه‌ی مقابل سازنده‌ها هستند.
  • تابع مخرب در زمان از بین بردن یک شئ فراخوانی می‌شود.
  • پس از تخریب یک شئ، تابع مخرب تمامی منابع تخصیص یافته به شئ را پس می‌گیرد.
  • معمولاً تابع مخرب به دو صورت فراخوانی می‌شود: هنگام اتمام یک اسکریپت

یا به صورت دستی با صدا زدن تابع unset() یک شئ را پاک می‌کند.

  • متد “destructor” با (__) شروع می‌شود.

سینتکس (syntax) معمول برای تعریف یک مخرب به صورت زیر است:

نوع آرگومان‌های argument1، argument2 تا argumentN متغیر است.

PHP: ساختن نمونه‌های (Instance) متعددی از یک کلاس

در مثال بعدی چندین شئ (نمونه (Instance)) از یک کلاس ساخته‌ایم و مقادیر مختلفی را به آنها داده‌ایم.

699

PHP: ارث‌بری

  • ارث‌بری یکی از اصول قدیمی و مشهور برنامه‌نویسی است.
  • ارث‌بری به کلاس‌ها اجازه‌ی تشکیل یک ساختار سلسله‌مراتبی را می‌دهد

درست شبیه یک درخت خوانواده (شجره‌نامه).

  • به ساب‌کلاس‌ها (کلاس‌های فرزند (Subclass)) این اجازه را می‌دهد که متدها و

propertyهای سوپرکلاس (کلاس والد (Supperclass)) را به ارث ببرند.

  • سوپرکلاس، کلاس والد است.
  • یک ساب‌کلاس می‌تواند متدها و property‌هایی به خود اضافه کند.
  • ارث‌بری موجب استفاده‌ی مجدد از کد می‌شود.

آخرین پاسخ ها

  • Hello World!
  • Hello World!

نوشته‌های تازه

  • سیستم مدیریت محتوا یا CMS
  • شی گرایی در php
  • اشنایی با زبان php
  • برنامه نویسی فرانت اند
  • هوک وردپرس چیست

آخرین دیدگاه‌ها

    بایگانی‌ها

    • مارس 2021
    • فوریه 2021
    • ژانویه 2021
    • جولای 2020

    دسته‌ها

    • آکادمی
    • امنیت
    • توسعه نرم افزار
    • خدمات
    • دسته‌بندی نشده
    • دسکتاپ اپلیکیشن
    • دیجیتال مارکتینگ
    • طراحی سایت
    • طراحی و دیزاین
    • موبایل اپلیکیشن
    • وب اپلیکیشن
    • وب اپلیکیشن

    اطلاعات

    • ورود
    • خوراک ورودی‌ها
    • خوراک دیدگاه‌ها
    • وردپرس

    آخرین مقالات

    • سیستم مدیریت محتوا یا CMSسیستم مدیریت محتوا یا CMSمارس 3, 2021 - 1:04 ب.ظ
    • برنامه نویسی شی گرا در PHPشی گرایی در phpمارس 1, 2021 - 1:34 ب.ظ
    • اشنایی با زبان phpاشنایی با زبان phpفوریه 15, 2021 - 2:02 ب.ظ
    • برنامه نویسی فرانت اندفوریه 15, 2021 - 12:37 ب.ظ

    برچسب ها

    Print-Design Video Editing Web-Design دیجیتال مارکتینگ طراحی سایت طراحی و دیزاین عکاسی و فیلم برداری همه

    درباره طرفه نگاران کهن

    طرفه نگاران کهن در آغاز فعالیت به ارائه خدمات مورد تقاضای جامعه مخاطبان این حوزه می پرداخت. در ادامه با گسترش مجموعه خدمات خود در بازه زمانی پنج ساله به یک آژانس جامع گرا تبدیل شد. از این تاریخ، طرفه نگاران کهن، هر سال با تکمیل توانایی های خود، ارتقای کیفیت خدمات و افزایش تعداد مشتریان در مسیر رشد مستمر گام برداشته است و با خلق ارزش مستمر برای ذی نفعان، با کسب جایگاه برتر در زمینه بازاریابی و تبلیغات، همکاری های موفقیت آمیزی را با برند های معتبر رقم زده است

    ارتباط با طرفه نگاران کهن

    آدرس : تهران خیابان سهروردی شمالی ، جنب پمپ بنزین، کوچه تهمتن ساختمان مهرگان (پلاک6) طبقه پنجم واحد 18

    تلفن : 02188519057
    کد پستی : 1234567890

    کلیه حقوق مادی و معنوی سایت محفوظ بوده و هرگونه کپی برداری از نمونه کارها پیگرد قانونی دارد
    • صفحه اصلی
    • خدمات
    • آکادمی
    • ارتباط با ما
    • درخواست مشاوره
    اشنایی با زبان php اشنایی با زبان php سیستم مدیریت محتوا یا CMS سیستم مدیریت محتوا یا CMS
    رفتن به بالا

    شماره موبایل خود را وارد نمایید تا کارشناسان طرفه نگاران با شما تماس بگیرند

    ثبت درخواست ajax مشاهده وب سایت