برنامه نویسی شیء گرا (Object Oriented Programming - OOP)، در PHP
در گذشته، ابتدا برنامه نویسی تابعی (functional) توسط برنامه نویسان استفاده می شد، اما زمانی که برنامه نویسان، مشغول توسعه برنامه های حجیم و سنگین بودند، با مشکلات زیادی مواجه می شدند. با توجه به حجم زیاد کدها، توسعه برنامه نوشته شده، سخت بود و بنابراین برنامه نویسان تلاش کردند که شیوه ای جدید برای برنامه نویسی بیابند که تا این حد برای توسعه برنامه های خود، مشکل نداشته باشند. حاصل این تلاش، برنامه نویسی شیء گرا (Object Oriented Programming - OOP) می باشد.
در برنامه نویسی شیءگرا، از دو مفهوم اصلی ((کلاس)) و ((شیء)) استفاده می شود. برای درک صحیح دو مفهوم کلاس (class) و شیء (object) بهتر است برایتان یک مثال بزنم. فرض کنید ما یک کارخانه تولید ماشین (اتوموبیل) داشته باشیم که ماشین هایی با مشخصات کاملا یکسان تولید می کند (رنگ ، امکانات و ... یکسان می باشد). این ((کارخانه)) را می توانیم به عنوان یک ((کلاس)) در نظر بگیریم و هر ((ماشین)) تولید شده توسط ((کارخانه)) را هم می توانیم به عنوان یک ((شیء)) فرض کنیم. در واقع یک ((کلاس)) می تواند ((شیء)) هایی با مشخصات یکسان تولید کند.
همان طور که ممکن است یک مشتری، از کارخانه، ماشینی را بخرد و سپس رنگ آن را تغییر بدهد، ما نیز ابتدا می توانیم از ((کلاس)) بخواهیم که یک ((شیء)) برای ما بسازد و سپس بر اساس نیازمان، ویژگی هایی از آن را تغییر بدهیم.
در ادامه، سعی می کنم ابتدا مثال هایی را برایتان بزنم و شما کم کم با قابلیت های برنامه نویسی شیء گرا آشنا خواهید شد.
ساخت یک کلاس در PHP :
برای ساخت یک کلاس در PHP ، شیوه کلی کدنویسی به این صورت می باشد :
بنابراین برای تعریف یک کلاس در PHP ، ابتدا کلمه class را می نویسیم که اعلام می کند که قصد داریم یک کلاس بسازیم. پس از کلمه class ، باید یک نام دلخواه برای کلاس بنویسیم (در مثال بالا، نام ClassName انتخاب شده است). به طور قراردادی، حرف اول نام کلاس را با حرف بزرگ و سایر حروف را با حرف کوچک می نویسند (البته اگر نام را به صورت ترکیب دو کلمه متصل به هم انتخاب کنیم، می توان حرف اول کلمه دوم را نیز بزرگ نوشت تا خوانایی و تشخیص نام کلاس، آسان تر شود، مثل همین نام ClassName که انتخاب کردیم).
پس از نام کلاس، باید کدهای مربوط به کلاس را درون علامت های } و { بنویسیم.
تعریف یک تابع (function) برای کلاس در PHP :
هر کلاس می تواند شامل تعدادی تابع (function) باشد. شکل کلی تعریف تابع برای یک کلاس، به صورت زیر می باشد :
در شکل کلی نمایش داده شده در بالا، تابع تعریف شده برای کلاس ClassName دارای نام function_name می باشد.
به مثال زیر توجه کنید :
یک کلاس به نام Welcome می سازیم که دارای یک تابع با نام say_hello باشد :
تمامی کدهای نوشته شده، تنها برای تعریف کلاس Welcome می باشد. آنچه اهمیت دارد این است که با اجرای کدهای بالا، کلمه hello در خروجی نمایش داده نخواهد شد. علت آن هم این است که وقتی ما در ابتدای کدهای PHP خود، یک کلاس تعریف می کنیم، تا زمانی که از آن کلاس نخواهیم که برای ما یک شیء بسازد، آن کلاس هیچ عملکردی نخواهد داشت (خروجی برای نمایش به کاربر و یا موارد دیگر، نخواهیم داشت).