تعداد بازدید: 283

شی گرایی در php (قسمت چهارم)

در این مقاله قصد داریم تا مباحث زیر رو بررسی کنیم:

  • stdClass
  • class constants
  • class functions

stdClass

اگر خاطر داشته باشید در زبان جاوا اسکریپت ما یک شی درست می کردیم و پس از آن مقادیر را برای شی set می کردیم . این امر در پی اچ پی به وسیله کلاس از پیش تعیین شده stdClass امکان پذیر هست.

stdClass یه کلاس خالیه که میتونید متغیرهاتون رو بهش اضافه کنید.

خوب بدین شکل ما یک متغیر پیشرفته تر از آرایه ها داریم . (یعنی یک شی) . خروجی به شکل زیر خواهد بود:

stdClass Object ( [name] => abolfazl [nic_name] => papillon [job] => computer_man [lvoe] => dont ask me about this is secret )

می تونید یک کلاس رو تعریف کنید و بعد بیاید و مقادیری رو براش set کنید . دقت داشته باشید به خروجی مثال زیر:

خروجی کد زیر به شکل زیر خواهد بود :

car Object ( [wheel] => 4 [door] => 2 [model] => c400 )

نکاتی در رابطه با stdClass :

  • دقت داشته باشید به وسیله تابع foreach می تونید به المنت های شی stdClass دسترسی داشته باشید.
  • به وسیله stdClass شما می تونید آرایه ای از اشیا داشته باشید که این خیلی میتونه بهتون کمک کنه.
  •  دقت داشته باشید که ما مثل جاوا اسکریپت نمیتونیم که در stdClass متد تعریف کنیم.

ثوابت در کلاس ها

ما در کلاس هامون می تونیم از ثوابت زیادی استفاده کنیم که هر کدوم از اون ها مقادیری رو دارا هستند.

__CLASS__ : نام کلاس جاری

__METHOD__ : نام متد جاری

تابع clone برای اشیا

هرزمان که شما یک متغیر ساده تعریف می کنید (از نوع اولیه مثل عدد رشته و …) نام و مقدار مستقیما در حافظه stack ذخیره میشوند اما زمانی که متغیری از نوع شی می سازید اون به صورت یک اشاره گر به حافظه ذخیره میشه. کد زیر را در نظر بگیرید.

زمانی که ما یک دو شی رو برابر قرار میدیم (با عملگر =) اون دو شی دقیقا به یک مکان از حافظه اشاره می کنند و عملا یکی هستند و با تغییر هرکدوم اون یکی دیگه هم تغییر میکنه.

برای حل این مساله از تابع clone استفاده می کنیم.

توابع زیادی در رابطه با کلاس ها در پی اچ پی داریم که به برخی از اون ها اشاره می کنیم:

class_existsc :  این که کلاسی وجود داره یا خیر (مثل function_exists) میشه برای اطمینان قبل از instance گرفتن از این تابع استفاده کنیم.

get_class : اگر یک شی داشته باشیم و بخوایم نام کلاسشو بگیریم.(ورودی شی)

get_called_class : فرض کنید که ما یه متد استاتیک داریم در دو کلاس که از هم ارث برده شده اند. خب در زمان فراخوانی متد استاتیک از کجا بفهمیم که این متد از کدوم کلاس فراخوانی شده ؟ باید از این تابع استفاده کنیم. به مثال زیر دقت کنید :

get_class_methods : برای گرفتن تمامی متدهای یک کلاس.(ورودی کلاس)

get_class_vars :‌ برای گرفتن تمامی متغیر های نمونه یک کلاس.(ورودی کلاس)

get_declared_classes : کل کلاس های تعریف شده در برنامه (این مورد خیلی به فهم نحوه کار برنامه کمک می کنه)

get_object_vars : کل متغیرهای نمونه شی رو میده (ورودی شی).

is_a : به وسیله این تابع می تونید بفهمید که یک شی از فلان کلاس هست یا خیر.

توابعی که گفته شد خیلی جاها که شما به عنوان نفر دوم وارد یه برنامه میشید خیلی میتونه بهتون کمک کنه تا کدهای نفر قبل رو بفهمید . اینجاست که میگیم کد نویسی به وسیله شی گرایی بسیار قابل فهم تره و بیشتر به کار تیمی میاد تا کدنویسی به وسیله تابعی .

مطالب مشابه

آرایه ها در php

در این مقاله قصد داریم تا آرایه ها رو در php بررسی کنیم و همچنین توابع مرتبط با آرایه ها رو بررسی کنیم. انواع آرایه در...

strings-function in php

رشته ها در PHP

توابع مربوط به رشته ها در php کاربردهای زیادی دارند از جمله ساخت رشته های رمزنگاری شده و همچنین ساخت خلاصه متن و تبدیل...

اشتراک گذاری :

ابوالفضل صباغ

برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای شی گرایی در php (قسمت چهارم)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *