در جلسه گذشته توابع در php را تعریف کرده و به بررسی تعدادی از آنها پرداختیم. گفتیم که در آموزش زبانهای برنامهنویسی تحت وب همچون آموزش پی اچ پی (PHP) به دانشجویان تأکید میشود برای کاهش زمان تلف شده و تمیزی کدهای برنامه، حتماً از توابع استفاده کنند. این کار مزیتی دیگری هم دارد که شامل بالا بردن سرعت کامپایل شده و بالأخص در نوشتن پروژههای بزرگ، فوقالعاده کارساز است. در ادامة دوره آموزش برنامهنویسی PHP سایت کدیاد، میخواهیم به بررسی تعدادی دیگر از توابع پرداخته و ویژگیهای آنها را بشناسیم. پس با ما در آموزش پی اچ پی رایگان سایت کدیاد همراه بوده و تا میتوانید بخوانید و تمرین کنید.
توابع کاربردی در php
همانطور که در آموزش PHP گفته شد، توابع به دو دستة عمده تقسیمبندی میشوند. یک دسته بهنام توابع پیش فرض یا Built-in شناخته میشوند که در کتابخانة زبان پی اچ پی وجود دارد و نیازی به نوشتن دوباره نیست. برای استفاده از این فانکشنها تنها کافیست آنها را فراخوانی کرده و به وقت لازم استفاده کنید. دستة دیگر از توابع، فانکشنهایی هستند که خود برنامهنویس قادر به نوشتن و تولید آن است.
این دسته که با نام User Defined یا تعریفی توسط کاربر شناخته میشوند، یکبار نوشته شده و برای همیشه در کتابخانة پیاچپی ذخیره میشوند. بدین ترتیب از این مدل توابع میتوان برای برنامههای شخصیسازی شده بهره برد. بهصورت کلی فانکشنها قدرت یک برنامهنویس را بالا برده و دست او را برای نوشتن مینیمال برنامههای کوچک مورد استفاده در پروژههای بزرگ، باز میگذارند.
توابع در برنامهنویسی به زبان php
در آموزش پی اچ پی به زبان ساده یادآوری میشود که این زبان دارای حجم عظیمی از توابع پیشفرض است و استفاده از آنها در افزایش کیفیت برنامهها، تأثیر بسزایی خواهند داشت. با فانکشنهای کاربردی میتوان در آموزش پی اچ پی آشنا شده و بهخوبی طریقة استفاده از آنها را فرا گرفت. از این سری میتوان به توابع رشتهای، محاسباتی و دادهای اشاره کرد که بخش بزرگی از نیازهای کاربران را رفع میکند. در جلسه دوازدهم از بررسی توابع کاربردی در php، به نحوة متغیرگیری در اشکال مختلف اعم از digit& float& string پرداخته و سایر مطالب پیرامون آنها را مرور میکنیم.
انواع فانکشنها در برنامهنویسی php
در زبان برنامهنویسی پی اچ پی، توابع به اشکال مختلفی وجود دارند. در این دستهبندی فانکشنها بهصورت توابع بدون آرگومان و توابع به همراه یک یا چند آرگومان دیده میشوند. در دستة اول آنها دارای متغیر ورودی نبوده و صرفاً برای انجام یک کار مشخص فراخوانی میشوند. در دسته دوم با توجه به وجود متغیرهای مختلف، میتوان از این توابع در موقعیتهای گوناگون استفاده کرده و نتایجی مناسب ورودیهای وارد شده، بهدست آورد.
در آموزش پی اچ پی (PHP) به این نکته نیز توجه شده است که فانکشنها از لحاظ عملیاتی نیز به شش دستة عمده تفکیک میشوند. فانکشنهای دارای متغیرهای دادهای، رشتهای، اعداد، ارتباط با پایگاه داده، فرمت تاریخ و زمان و آرایهها هستند. در ادامه به بررسی هر کدام از انواع توابع پرداخته و ویژگیهای آنها را بر میشمریم.
فانکشنهای دارای آرگومان دادهای
در این توابع آرگومانهایی از نوع داده دریافت شده و خروجی آن نیز بسته به هدف تابع تعیین میشود.
استفاده از دستور strict_types جهت تشخیص نوع داده در زبان php
در چنین فرایندی برای انجام عملیات، نیازمند ورودی با متغیر دادهای هستیم. از انواع توابع Built-in که در کتابخانة php قرار داشته و ورودیهای دادهای دریافت میکنند، میتوان به تابع gettype اشاره کرد. از این توابع برای تشخیص نوع ورودی داده شده استفاده شده و بهنوعی کدها را دیباگ میکنند.
برای اینکه مفسر برنامه یا همان دیباگ زبان php به نوع دادهها حساس شده و به بررسی نوع دادههای ورودی بپردازد،لازم است از دستور declare(strict_types=1) در ابتدای کد نویسی استفاده کرد. این دستور به سیستم میفهماند که لازم است نوع دادة ورودی دقیقاً با نوع تعریف شده همسان بوده و تطابق کامل داشته باشند. strict_types باعث میشود بههنگام کامپایل کدهای php، نوع دادهها بهشکلی خودکار به یکدیگر تبدیل نشده و در صورت مغایرت پیام خطایی ارسال نشود.
در مثال آورده شده در جلسة ۱۲ آموزش پی اچ پی رایگان سایت کدیاد، از این فرمان اینگونه استفاده شده است که با تعریف متغیرهای int، ورودیها یکی از جنس int بوده و دیگری در “ ” قرار گرفته و جنسی از نوع string دارد. اگر این دستور در بالای کدها قرار نگیرد، عملیات انجام شده بدون آنکه متوجه تفاوت data_type دادهها شود. حال با نوشتن این فرمان، در بخش خروجی برنامه خطایی ارسال میشود. این خطا بیانگر این موضوع است که تا زمانیکه دادههای ورودی شما با نوع متغیرهای تعریف شده در برنامه، یکسان نباشند، نمیتوان عملیاتی بر روی آنها انجام داد. این خطا با چنین متنی به خروجی ارسال خواهد شد:
خطای عدم تطابق نوع متغیرها با ورودیهای برنامه
تابع var_dump();
تابع var_dump بهمنظور تغییر نوع دادهها استفاده میشود. در این جلسه به آموزش پی اچ پی (PHP) پیرامون همین موضوع پرداخته و از تابع var_dump(); استفاده شده است. با نوشتن چنین تابعی و قرار دادن دستورات و ورودیهای مورد نظر داخل پرانتز این تابع، خروجی ارسالی به همراه نوع داده و نتیجة حاصله خواهد بود. حتی اگر نوع آرگومانهای ورودی نیز تغییر کنند، این تابع اقدام به محاسبة نتیجه با تغییرات اعمال شده میکند. علاوه بر آن در صفحه خروجی، تایپ تغییر یافتة خروجی داده را نیز مشخص میکند. پس یک تابع دیگر برای تعیین نوع داده، تابع var_dump است که این نوع فانکشن علاوه بر نوع داده تعداد و مقدار آنها را نیز مشخص میکند.
var_dump( sum(20,250));
کاربرد تابع var_dump() در استفاده از رشتههای عددی
مهمترین کاربرد استفاده از فانکشن var_dump، بهرهگیری از آن در جهت بررسی رشتههای عددی و آرایهها است. این تابع ساختار اطلاعات موجود در توابع را بررسی کرده و نمایش میدهد. بهعنوانمثال در جلسات آموزش پی اچ پی (PHP) نیز دیدیم که هرگاه نوع خروجی را int بگذاریم، منظور خروجی به شکل رقم است یا در صورت تنظیم نوع خروجی بهشکل string منظور رشتهای بودن ورودی است. حتی میتوان در این تابع طول رشته را نیز با متغیر length مشخص کرد.
در برنامهنویسی به زبان php، دو تابع var_dump() و print_r() دارای تفاوتها و شباهتهای قابلتوجهی هستند. بهطور مثال هر دو برای چاپ آرایهها پرکاربرد هستند. تفاوت این دو تابع پرکاربرد در نمایش دادههای موجود است. var_dump() قابلیت چاپ کلیة اطلاعات همچون نوع داده، طول داده، مقدار و کلید را دارد؛ اما تابع print_r() صرفاً به چاپ مقدار کلیدی آرگومان اکتفا میکند.
نمایش دادههای ورودی به شکل int در قسمت خروجی php
این بدان معناست که فانکشن print_r() توانایی نمایش بسیاری از اطلاعات را نداشته و حوزة اطلاعات کمتری را به زیر چاپ میبرد.
خطای فرمان فانکشن var_dump()
در نوشتن تابع var_dump() باید به نکات بسیار ریزی دقت کرد تا خروجی برنامه دچار خطا نگردد. بهطورمعمول چنین خطاهایی ناشی از غیرفعال بودن تنظیمات دیبااگ بوده و نیازمند بررسی مجدد در قسمت setting php.ini است. در چنین شرایطی پس از برداشتن علامت; لازم است به ریست کردن apache اقدام شود. دستور راهاندازی مجدد و رفع باگ برنامههای پی اچ پی بدین شکل است:
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
تغییر تایپ آرگومانهای ورودی زبان PHP
در ادامه آموزش PHP، مثالی پیرامون تغییرات نوع متغیرهای ورودی از int به float زده شده است. بهخوبی میدانیم که float به معنای دادههای ترکیبی از قسمتهای صحیح و اعشاری است. با تغییر تایپ ورودیها، خروجی به شکلی اعشاری نمایش داده میشود؛ اما اگر کاربر بخواهد صرفاً بخش صحیح عملیات را ببیند، کافیست دستور int را به شکلی وارد کدهای برنامه کنید. مثال آورده شده در قسمت آموزش پی اچ پی به زبان ساده سایت کدیاد، این کد بعد از تعریف متغیرهای ورودی و پس از دستور return و در دو قسمت قرار خواهد گرفت. حال اگر ورودی نیز از نوع float باشد، خروجی همچنان int باز میگرداند. بهطوریکه میبینیم متغیرهای $x و $y هر دو از نوع float تعریف شدهاند؛ اما برنامهنویس میخواهد سیستم نتیجه را int برگرداند. پس بعد از تعریف آرگومانها، بدینصورت مینویسد:
Function sum1 (float $x, flaot $y): int {
return ( int ) ($x+$y);
}
امکان انجام عملیات بر روی دادههای نوع float و نمایش نتیجه داده از نوع int در php
فانکشنهای دارای آرگومان رشتهای
در دوره آموزش برنامهنویسی PHP، به سری دیگری از توابع دارای متغیرهای رشتهای نیز اشاره میشود. در این توابع آرگومانهای ورودی را به شکل متن و رشته انتخاب کرده و در “ “ قرا میدهند. برای دریافت ورودی بدین شکل، استانداری نهفته است. آرگومان اولیه مشخصکنندة فرمت تایپ خروجی بوده و میتواند شامل حروف متفاوت و متنوعی از دادههای گوناگون باشد. همچنین در این مدل رشتهها حرف D به معنای دادههای صحیح یا integer بوده و حرف F علامت اختصاری float یا حروف اعشاری است.
طبق برنامه آموزش پی اچ پی (PHP)، برای نمایش تعداد کاراکترهای مورد استفاده قرار رفته، از تابع strlrn بهره گرفته میشود. تابع دیگری که برای توابع کار با رشتهها قابل استفاده است را با نام strstr میشناسیم که وظیفهاش جستجوی یک رشتة ورودی بسیار کوتاه در سری رشتههای حرفی است. تابع دیگری که با نام strposمیشناسیم، جایگاه و موقعیت رشتههای ورودی را در یک متن کد نمایش میدهد.
از سری توابع رشتهای دیگری که در بخش نام خواهیم برد، فانکشن explode است که مناسب تقسیم کردن یک رشتة طولانی به اجزای مختصرتر است. این کار باعث میشود از آوردن رشتههایی با طول بلند جلوگیری شده و خوانش کد بالاتر رود. همانطور که در ابتدای جلسة دوازدهم آموزش پی اچ پی (PHP) مشاهده کردید، استاد برای شروع به کار در این جلسه کلیة تگهای جاوا اسکریپتی و html در فضای برنامهنویسی visual studio را حذف میکند. خوب است بدانید این کار با ثبت دستور تابع strip_tags() انجام میشود. این کار موجب شده تا تگهای فوق در صفحه نمایش نشان داده نشده اما مانند <br> قابل استفاده و کاربردی باشند.
شروع کد نویسی بدون استفاده از تگهای html و javascript
فانکشنهای دارای آرگومان با قابلیت عملکردهای ریاضی
توابعی مانند ماکزیمم و مینیمم، قادر به گرفتن آرگومانهای متعددی هستند که از میان آنها بیشترین و کمترین مقدار را بر میگردانند. این فانکشنها بهخصوص در زمان نوشتن کدهای ریاضی و نمودارهای کاربردی قابل استفاده بوده و بهشکلی متداول استفاده میشوند. با کمک توابع max و min قادر به تعیین بزرگترین یا کوچکترین عدد بوده و به خروجی اجازة چاپ آن، داده میشود. از دیگر توابعی که در هنگام آموزش پی اچ پی (PHP) از آنان نام برده میشود، میتوان به فانکشنهای floor و ceil برای گرد کردن اعداد ارسالی استفاده کرد.
فانکشنهای دارای آرگومان عددی
در این قسمت به بررسی انواع آرگومانهای عددی قابل استفاده در برنامهنویسی php میپردازیم. در جلسه دوازدهم با انواع تایپهای integer، is_int، float و is_float آشنا شده و در ادامه به شرح جزئیاتی از آنها خواهیم پرداخت. اولین قسم از انواع تایپهای عددی را، اعداد صحیح یا integer مینامند. این سری اعداد غیر اعشاری بوده و به سه شکل دسیمال یا دهتایی، اوکتال یا هشتتایی و هگزادسیمال یا شانزدهتایی تقسیمبندی میشوند.پ
دستة دوم فانکشن is_int است که صرفاً مناسب تشخیص صحیح یا اعشاری بودن متغیر ورودی است. این تابع از مدل Boolean بوده و پاسخ را به کل صحیح و غلط بر میگرداند. از سایر اعداد که دارای دو قسم صحیح و اعشار هستند، با نام float یا شناور نام برده میشود. اعداد شناور را میتوان به شکل توانی نیز مشاهده کرده و دارای ظرفیت حداکثر ۱۴ رقم خواهند بود. دستة آخر همچون توابع تشخیص اعداد صحیح، به تأیید یا عدم تائید اعداد اعشاری منجر شده و یکی دیگر از توابع قابل استفاده در مباحث آموزش پی اچ پی (PHP) هستند.
استفاده از توابع در برنامهنویسی php
جمعبندی
در جلسة دوازدهم از سری دورههای آموزش برنامهنویسی PHP در سایت کدیاد، با سایر توابع کاربردی آشنا شدیم. با کمک این فانکشنها به بررسی اطلاعات جزئیتری پرداخته و طریقة استفاده از آنان را در پروژههای کوچک و بزرگ فرا گرفتیم. اگر شما نیز در این زمینه دارای نقطه نظرات و پیشنهاداتی بودید، با ما در میان بگذارید. کلام آخر، توصیه اکید اساتید این دوره بر تلاش و تلاش بیشتر و تمرین و دقت بالاست. هیچ موفقیتی بدون تلاش و پشتکار حاصل نشده و این قانون برای همه یکسان است.
قسمت قبلی آموزش رایگان php :
قسمت بعدی آموزش رایگان php
یا جهت مشاهده ویدیوهای اموزشی آموزش رایگان پی اچ پی وارد این صفحه شوید.