توابع PHP – معرفی ۴۰ تابع مهم +مثال و کد
«تابع» (Function) یکی از مهمترین مفاهیم موجود در هر زبان برنامه نویسی است. زبان برنامه نویسی PHP نیز به عنوان محبوبترین زبان توسعه وب از این قاعده مستثنی نیست. در زبان PHP علاوه بر امکان تعریف تابع توسط برنامهنویس مجموعه کاملی از توابع کاربردی برای نیازهای مختلف وجود دارد. شناخت توابع کاربردی موجود در این زبان و توانایی استفاده از آنها برای هر برنامهنویس PHP ضروری است. آشنایی با این توابع موجب افزایش بهرهوری برنامهنویس و کاهش زمان توسعه برنامه میشود. در این مطلب از مجله فرادرس توابع PHP در حوزههای مختلف همراه با مثال عملی معرفی شدهاند. علاوه بر این، سعی شده است تا موارد مهمی همچون مفهوم تابع، نحوه تعریف و فراخوانی تابع در PHP، مزایای استفاده از توابع و سایر موارد مرتبط با آن نیز در این مطلب پوشش داده شود.
مفهوم تابع در برنامه نویسی چیست؟
تابع یک مفهوم مهم و پرکاربرد در تمام زبانهای برنامه نویسی است. به طور کلی تابع شامل قطعات یا بلوکهایی از کد است که اطلاعاتی را در قالب ورودی دریافت کرده و بعد از پردازش آنها مقداری را تحت عنوان خروجی بر میگرداند.
توسعهدهندگان میتوانند عملکردهای مختلف برنامه خود را در قالب توابع پیادهسازی کنند. یکی از مهمترین ویژگیهای تابع در برنامه نویسی قابلیت استفاده مجدد آن است که به موجب این ویژگی میتوان تابع نوشته شده را چندین مرتبه در برنامه فراخوانی کرد. بنابراین، استفاده از تابع در برنامه نویسی موجب کوتاهتر شدن کدها و بهبود خوانایی برنامه میشود. علاوه بر این، «اشکالزدایی» (Debug) و رفع خطا از کد نیز آسانتر خواهد شد.
توابع PHP چه کاربردی دارند؟
زبان برنامه نویسی PHP نیز همانند سایر زبانهای برنامه نویسی از مفهوم تابع پشتیبانی میکند. یکی از معیارهای بررسی قدرت و توانمندی زبانهای برنامه نویسی توانایی آنها در ارائه و پشتیبانی از توابع کاربردی مختلف است.
زبان برنامه نویسی PHP با ارائه بیش از ۱۰۰۰ تابع داخلی و امکان تعریف توابع مختلف در این زمینه سرآمد است. توابع PHP کاربردهای بسیاری دارند و توسعهدهندگان با ترکیب دانش برنامه نویسی خود و استفاده از این توابع کاربردی میتوانند عملکردهای فوقالعادهای را توسعه دهند. در ادامه این نوشته به طور کامل با توابع PHP و کاربردها، انواع، ساختار پیادهسازی و فراخوانی و مزایای آنها آشنا خواهید شد.
مزایای استفاده از توابع PHP چیست؟
توسعهدهندگان با استفاده از توابع PHP میتوانند عملکردها و قابلیتهای متنوعی را پیادهسازی کنند. تنوع بسیار بالای توابع داخلی موجود در این زبان به همراه امکان تعریف توابع مختلف مزیتهای بسیاری را برای توسعهدهندگان این زبان فراهم کرده است. در ادامه ۳ مورد از مهمترین مزایای استفاده از توابع در PHP ارائه شده است.
- قابلیت استفاده مجدد کد: برخلاف سایر زبانهای برنامه نویسی توابع PHP تنها یک مرتبه تعریف میشوند و امکان فراخوانی چندین باره آنها وجود دارد.
- کدهای کمتر: استفاده از توابع حجم کدهای برنامه را به طرز محسوسی کاهش میدهد، زیرا در بخشهای مشترک برنامه تنها با فراخوانی تابع میتوان عملکرد مورد نظر را پیادهسازی کرد. در نتیجه، استفاده از تابع از تکرار کدها جلوگیری میکند.
- یادگیری آسان: استفاده از تابع در PHP منطق پیادهسازی بخشهای مختلف برنامه را تفکیک میکند. در نتیجه، یادگیری و درک کدهای برنامه آسانتر میشود.
انواع توابع PHP کدامند؟
به زبان ساده توابع PHP قطعه کدهایی هستند که اطلاعاتی را در ورودی دریافت کرده و بعد از پردازش آنها خروجی مورد انتظار را تولید میکنند. مهمترین ویژگی توابع نیز قابلیت استفاده مجدد آنها است که موجب بهبود خوانایی و کاهش خطوط برنامه میشود.
به صورت پیشفرض در زبان برنامه نویسی PHP بیش از ۱۰۰۰ تابع داخلی با کارکردهای مختلف تعریف شده است که برنامهنویس میتواند از این توابع آماده در پروژههای خود استفاده کند. علاوه بر این، امکان تعریف توابع به صورت سفارشی توسط برنامهنویس نیز در این زبان وجود دارد. بر همین اساس، توابع PHP را میتوان به ۲ دسته کلی تقسیمبندی کرد.
- «توابع داخلی» (Built-in Function)
- «توابع تعریف شده توسط کاربر» (User-Defined Function)
در ادامه این مطلب ابتدا توابع تعریف شده توسط کاربر در زبان PHP مورد بررسی قرار خواهند گرفت و سپس، فهرست کاملی از توابع داخلی PHP به همراه مثال ارائه خواهد شد.
توابع تعریف شده توسط کاربر
امکان تعریف توابع در تمام زبانهای برنامه نویسی وجود دارد و زبان PHP نیز از این قاعده مستثنی نیست. برنامهنویس در زبان PHP با توجه به نیاز خود میتواند با پیروی از ساختارهای مشخص شده برای تعریف توابع نسبت به پیادهسازی تابع مورد نظر خود اقدام کند.
برای تعریف توابع در زبان PHP باید از قواعد مشخصی پیروی کرد. بر همین اساس در این بخش تمام مراحل مورد نیاز برای تعریف و فراخوانی توابع در PHP مورد بررسی قرار گرفته است.
تعریف توابع PHP
تعریف توابع در زبان PHP بسیار آسان است. قطعه کد زیر نحوه پیادهسازی توابع در زبان PHP را نشان میدهد.
1<?php
2
3function function_name(){
4
5 //Statement to be executed
6}
7?>
با توجه به ساختار ارائه شده در بالا نکات زیر را باید در تعریف توابع PHP رعایت کرد.
- کلمه کلیدیfunction باید قبل از نام تابع آورده شود.
- در بخشfunction_name باید نام تابع را تعیین کرد. نکته مهم در خصوص تعیین نام تابع این است که نام تابع نباید با کاراکتر عددی شروع شود.
- پارامترهای ورودی تابع باید درون پرانتزهای باز و بسته() مشخص شده در جلوی نام تابع قرار گیرند.
- دستورات و کدهای مربوط به بدنه تابع باید درون کروشههای باز و بسته{} مشخص شده قرار گیرند.
فراخوانی توابع PHP
نکته بسیار مهم در خصوص توابع که هر برنامهنویسی باید بداند این است که تعریف و فراخوانی توابع را باید از یکدیگر تفکیک کرد. در واقع، تعریف توابع به هیچ عنوان موجب اجرای دستورات تعیین شده در بدنه آنها نمیشود. برای اجرای توابع باید آنها را در بخش مورد نظر فراخوانی کرد. قطعه کد زیر مثالی از تعریف و فراخوانی توابع PHP را نشان میدهد.
1<?php
2
3function WelcomeMessage(){
4 echo "Hello welcome!";
5}
6
7WelcomeMessage();
8
9?>
برای فراخوانی توابع در PHP کافی است تا در بخش مورد نظر نام تابع به همراه پرانتزهای باز و بسته در جلو آن قرار گیرد. در مثال بالا، تابعWelcomeMessage بعد از تعریف به همین شیوه فراخوانی شده است. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Hello welcome!
قوانین نام گذاری توابع PHP چیست؟
توابع یکی از بخشهای مهم در ساختار هر زبان برنامه نویسی هستند. به همین دلیل آشنایی بیشتر با این مقوله مهم برای هر برنامهنویسی ضروری است.
یکی از موارد مهم در خصوص توابع آشنایی با قواعد نام گذاری آنها است. در زمان نام گذاری توابع به موارد زیر باید توجه داشت.
- نام تابع باید با کاراکتر حرفی یا «خط زیر» (underscore) شروع شود.
- نام توابع در PHP به حروف کوچک و بزرگ حساس نیستند. در واقع، نام توابع «Case-Sensitive» نیست.
- نام تعیین شده برای تابع باید با عملکرد و هدف آن تابع همخوانی داشته باشد. رعایت این مورد برای بهبود خوانایی برنامه ضروی است.
- استفاده از «فاصله» (Space) در نام تابع مجاز نیست.
- استفاده از کاراکترهای ویژه همچون$ در نام تابع مجاز نیست.
- نام تابع نباید با کاراکتر عددی شروع شود.
جدول زیر مثالهایی از نام گذاری درست و نادرست برای توابع در PHP را نشان میدهد.
نام تابع | وضعیت |
() create_db | درست |
() 3create_db | نادرست |
() create_db2 | درست |
() create_db_ | درست |
() create db | نادرست |
() create$db | نادرست |
() createdb$ | نادرست |
() create1db | درست |
منظور از آرگومان در تعریف توابع PHP چیست؟
به زبان ساده متغیرهای تعیین شده به عنوان ورودی در تعریف تابع پارامترهای ورودی تابع نامیده میشوند. آرگومانها نیز مقادیری هستند که در زمان فراخوانی تابع به این پارامترها ارسال میشوند.
برای ارسال آرگومانها به پارامترهای ورودی توابع PHP دو روش کلی وجود دارد. شیوههای ارسال آرگومان به توابع به صورت زیر هستند.
- «ارسال آرگومان با مقدار» (Passing Arguments By Value)
- «ارسال آرگومان با ارجاع» (Passing Arguments By Reference)
در ادامه این بخش هر دو شیوه ارسال آرگومان به توابع به همراه مثال مورد بررسی قرار خواهد گرفت.
ارسال آرگومان با مقدار در توابع PHP
به طور کلی ارسال آرگومانها به توابع با مقدار صورت میگیرد. در واقع، تابع یک کپی از متغیر ارسالی را استفاده میکند و متغیر ارسال شده به عنوان آرگومان تغییری نمیکند. قطعه کد زیر ارسال آرگومان با مقدار در تابع را نشان میدهد.
1<?php
2
3function addition($val){
4
5 $val += 10;
6
7}
8
9$number =5;
10
11addition($number);
12
13echo $number;
14
15?>
خروجی حاصل بعد از اجرای قطعه کد بالا به صورت زیر خواهد بود.
5
در مثال بالا متغیر$number با مقدار ۵ به تابعaddition ارسال شده است. تابع یک کپی از متغیر تهیه میکند و با توجه به دستورات موجود در بدنه تابع ۱۰ واحد به آن اضافه میکند. نکته مهم در این مثال این است که مقدار متغیر ارسالی تغییر نخواهد کرد. در نتیجه، با اجرای دستورecho $number بعد از اجرای تابع مقدار ۵ در خروجی چاپ خواهد شد.
ارسال آرگومان با ارجاع در توابع PHP
در این شیوه به جای مقدار، آدرس آرگومان مورد نظر به تابع فرستاده میشود. در نتیجه، بعد از اجرای دستورات تابع مقدار متغیر ارسالی به تابع نیز تغییر خواهد کرد، زیرا برخلاف شیوه ارسال با مقدار از آرگومان ارسالی کپی تهیه نمیشود و به طور مستقیم خود متغیر استفاده میشود. برای ارسال آرگومان به روش ارجاع در تعریف تابع قبل از نام متغیر باید کاراکتر& قرار داده شود. این کاراکتر به آدرس متغیر ارسالی اشاره دارد. برای درک بهتر این مفهوم مثال زیر آورده شده است.
1<?php
2
3function addition(&$val) {
4
5 $val += 10;
6
7}
8
9$number =5;
10
11addition($number);
12
13echo $number;
14
15?>
در مثال بالا تابعaddition آرگومان ورودی با روش ارجاع را دریافت میکند، زیرا قبل از پارامتر ورودی$val کاراکتر& قرار گرفته است. در نتیجه، آدرس متغیر$number به عنوان آرگومان به تابع ارسال میشود. درون بدنه تابع مقدار ۱۰ واحد به متغیر ارسالی اضافه خواهد شد و به دلیل ارسال آرگومان به روش ارجاع مقدار متغیر$number نیز ۱۰ واحد اضافه میشود. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
15
منظور از مقادیر بازگشتی در تعریف توابع PHP چیست؟
بعد از اجرای دستورات پیادهسازی شده در بدنه تابع میتوان نتیجه حاصل را در خروجی چاپ کرد یا این مقدار را توسط دستور return برگشت داد.
در صورت استفاده از مقادیر بازگشتی در زمان کار با توابع باید خروجی حاصل از تابع را با توجه به نوع مقدار بازگشتی در متغیر مناسب ذخیره کرد. قطعه کد زیر نحوه استفاده از مقادیر بازگشتی در توابع PHP را نشان میدهد.
1<?php
2
3function circle($r){
4
5 return 3.14*$r*$r;
6
7}
8
9echo "Area of circle is: ".circle(3);
10
11?>
در مثال بالا تابعcircle بعد از دریافت پارامتر ورودی$r یا شعاع دایره محیط را محاسبه کرده و با دستور return محیط دایره را بر میگرداند. در نهایت توسط دستور echo محیط دایره در خروجی چاپ میشود.
Area of circle is: 28.26
منظور از مقادیر پیشفرض در تعریف توابع PHP چیست؟
در زمان تعریف توابع PHP میتوان مقدار پیشفرضی را برای آرگومانهای تابع تعیین کرد. کاربرد مقادیر پیشفرض در تعریف توابع این است که در صورت عدم ارسال مقدار برای آرگومانهای تابع آنگاه مقادیر پیشفرض جایگزین خواهند شد. قطعه کد زیر مثالی در این خصوص را نشان میدهد.
1<?php
2
3function setval(int $a = 5) {
4
5echo "The value is : $a <br>";
6
7}
8
9setval(50);
10
11setval();
12
13
14?>
در مثال بالا متغیر$a به عنوان پارامتر ورودی تابعsetval دارای مقدار پیشفرض ۵ است. این مقدار زمانی مورد استفاده قرار میگیرد که در زمان فراخوانی تابع آرگومانی برای ارسال مشخص نشده باشد. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر است.
The value is : 50 The value is : 5
در اولین فراخوانی تابعsetval(50) مقدار ۵۰ به عنوان آرگومان ورودی تابع مشخص شده است. بنابراین، تابع نیز از این همین مقدار استفاده میکند. در دومین فراخوانی تابعsetval() مقداری برای آرگومان ورودی تابع مشخص نشده است. بنابراین، تابع از مقدار پیشفرض تعیین شده استفاده میکند.
فراخوانی توابع PHP به صورت پویا
یکی از ویژگیهای جذاب زبان برنامه نویسی PHP امکان فراخوانی توابع به صورت پویا است. در واقع، به کمک این ویژگی میتوان نام تابع را درون متغیر ذخیره کرد و سپس با استفاده از همان متغیر فراخوانی تابع را انجام داد. قطعه کد زیر نحوه فراخوانی توابع به صورت پویا در PHP را نشان میدهد.
1<?php
2
3function say() {
4
5 print "hello<br>";
6}
7
8$function_holder = "say";
9
10$function_holder();
11
12 ?>
در مثال بالا نام تابعsay() درون متغیر$function_holder ذخیره شده است. بنابراین، با فراخوانی این متغیر تابع مورد نظر فراخوانی خواهد شد. خروجی حاصل از اجرای کد بالا به صورت زیر است.
hello
در صورت داشتن چندین تابع در برنامه میتوان از این ویژگی در زبان برنامه نویسی PHP برای فراخوانی توابع به صورت پویا استفاده کرد.
لیست توابع PHP
یکی از ویژگیهای جذاب زبان برنامه نویسی PHP ارائه طیف وسیعی از توابع برای کاربردهای گوناگون است. برنامهنویسان PHP باید در کنار بهبود مهارتهای کد نویسی خود با توابع موجود در این زبان و کاربردهای هر کدام از آنها آشنایی کامل داشته باشند.
در واقع، میتوان گفت که آشنایی با توابع PHP یک الزام برای تمام برنامهنویسان فعال در این حوزه است که به دنبال افزایش بهرهوری و کارایی خود هستند. بر همین اساس در این بخش ۴۰ مورد از مهمترین توابع در PHP به همراه کاربرد و ارائه مثال مورد بررسی قرار گرفته است.
echo در PHP
دستور echo در PHP در حقیقت یکی از توابع PHP است. با استفاده از این تابع میتوان رشتهای را در خروجی چاپ کرد. در زبان برنامه نویسی PHP برای چاپ رشته در خروجی علاوه بر echo میتوان از دستور print نیز استفاده کرد.
در ادامه، مهمترین نکات در خصوص استفاده از دستور echo در PHP و تفاوتهای آن با دستور print آورده شده است.
- در هنگام استفاده از تابع echo در PHP الزامی در خصوص استفاده یا عدم استفاده از پرانتز همراه آن وجود ندارد.
- در صورت ارسال بیش از یک پارامتر به تابع echo نباید از پرانتز استفاده کرد، زیرا این مورد موجب بروز خطا میشود.
- تابع echo در PHP کمی سریعتر از دستور print برای چاپ خروجی عمل میکند.
مثال زیر نحوه استفاده از تابع echo در PHP را نشان میدهد.
1<?php
2 $str = "Hello world!";
3 echo $str;
4?>
تابع echo در مثال بالا متغیر$str را در خروجی چاپ میکند. در نتیجه، عبارت زیر در خروجی چاپ خواهد شد.
Hello world!
تابع empty در PHP
empty یکی از توابع PHP در زمینه کار با نوعهای دادهای است. این تابع برای بررسی خالی بودن یا نبودن یک متغیر مورد استفاده قرار میگیرد. در واقع، تابع empty مقداردهی شدن یا نشدن متغیر مورد نظر را بررسی میکند. نحوه تعریف تابع empty به صورت زیر است.
1bool empty($variable);
این تابع یک متغیر به عنوان پارامتر ورودی دریافت میکند و در صورت داشتن مقدار عبارت False و در غیر این صورت عبارت True را بر میگرداند. همچنین، در صورت وجود مقادیر زیر درون متغیر تابع empty عبارت True را برگشت میدهد.
- 0
- 0.0
- "0"
- ""
- NULL
- FALSE
- ()array
قطعه کد زیر مثالی از کاربرد این تابع را نشان میدهد.
1<?php
2$a = 0;
3
4// True because $a is empty
5if (empty($a)) {
6 echo "Variable 'a' is empty.<br>";
7}
8
9?>
خروجی قطعه کد بالا نیز به صورت زیر خواهد بود.
Variable 'a' is empty
با توجه به این که مقدار متغیر$a برابر ۰ است. در نتیجه، تابع empty مقدار True را برگشت میدهد و با برقراری شرط عبارت فوق در خروجی چاپ میشود.
تابع isset در PHP
تابع isset در واقع Null بودن یا نبودن یک متغیر خاص را بررسی میکند. در صورتی که متغیر دارای مقدار Null باشد، آنگاه مقدار False و در غیر این صورت مقدار True توسط این تابع برگشت داده میشود. برای درک بهتر این موضوع به مثال زیر توجه کنید.
1<?php
2$a = 0;
3// True because $a is set
4if (isset($a)) {
5 echo "Variable 'a' is set.<br>";
6}
7
8$b = null;
9// False because $b is NULL
10if (isset($b)) {
11 echo "Variable 'b' is set.";
12}
13?>
در مثال بالا متغیر$a تعریف شده و دارای مقدار 0 است. بنابراین، در شرط اول تابع isset مقدار True را برگشت میدهد و شرط مورد نظر برقرار خواهد بود. همچنین، در ادامه متغیر$b تعریف شده و دارای مقدار null است. در نتیجه، تابع isset در شرط دوم مقدار False را برگشت میدهد و شرط نیز برقرار نخواهد بود. بنابراین، خروجی حاصل از اجرای قطعه کد بالا به صورت زیر است.
Variable 'a' is set.
تابع str_replace در PHP
str_replace یکی از توابع PHP در زمینه کار با رشتهها است. با استفاد از این تابع میتوان چند کاراکتر را با چند کاراکتر دیگر در رشته مورد نظر جایگزین کرد. کار با این تابع قواعد مشخصی دارد که در ادامه به برخی از این موارد اشاره شده است.
- اگر متن مورد جستجو آرایه باشد، آنگاه تابع آرایه بر میگرداند.
- اگر متن مورد جستجو آرایه باشد، آنگاه یافتن و جایگزینی با هر عنصر آرایه به صورت نظیر به نظیر انجام میشود.
- اگر هر دو متن مورد جستجو و متن جایگزین از نوع آرایه باشند و متن جایگزین عناصر کمتری داشته باشد، آنگاه جایگزینی با رشته خالی صورت میگیرد.
- اگر متن جستجو آرایه و متن جایگزین رشته باشد، آنگاه به ازای هر عنصر یافت شده متن جایگزین قرار داده میشود.
علاوه بر مورد ذکر شده در بالا باید عنوان کرد که این تابع «حساس به حروف» (case-sensitive) است. بنابراین، باید در زمان استفاده به کوچک یا بزرگ بودن حروف توجه کرد. در صورت نیاز به جستجو غیر حساس به کوچکی و بزرگی حروف میتوان از تابع str_ireplace در PHP استفاده کرد.
پارامترهای تابع str_replace در PHP کدامند؟
تعریف تابع str_replace به صورت زیر انجام میشود.
1str_replace(find,replace,string,count)
این تابع دارای ۴ پارامتر ورودی است که ادامه توضیحات مربوط به هر کدام ارائه شده است.
- find : این پارامتر متن مورد جستجو را مشخص میکند که میتواند رشته، آرایه یا هر کاراکتر دیگری باشد. قرار دادن این پارامتر در تعریف تابع اجباری است.
- replace : این پارامتر متن جایگزین را نشان میدهد که میتواند رشته، آرایه یا هر کاراکتر دیگری باشد. قرار دادن این پارامتر نیز همانند متن مورد جستجو اجباری است.
- string : این پارامتر رشته اصلی را نشان میدهد که جستجو و جایگزینی در آن صورت میگیرد.
- count : این پارامتر تعداد جایگزینیهای صورت گرفته را نمایش میدهد. قرار دادن این پارامتر در تعریف تابع اختیاری است.
برای درک بهتر نحوه کار تابع str_replace در PHP مثال زیر را در نظر بگیرید.
1$string = 'The quick brown fox jumps over the lazy dog.';
2
3$new_string = str_replace('fox', 'cat', $string);
4
5echo $new_string;
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
The quick brown cat jumps over the lazy dog.
در مثال بالا عبارتcat باfox جایگزین شده است.
تابع strlen در PHP
یکی از توابع PHP بسیار پرکاربرد در زمینه کار با رشتهها تابع strlen است. با استفاده از این تابع میتوان طول یک رشته یا تعداد کاراکترهای آن را محاسبه کرد. تابع strlen یک رشته را به عنوان پارامتر ورودی دریافت میکند و طول آن را در قالب عدد صحیح بر میگرداند. ذکر این نکته ضروری است که طول رشته تمام کاراکترهای خاص و حتی کاراکتر خالی را نیز شامل میشود. قطعه کد زیر پیادهسازی و نحوه عملکرد این تابع در PHP را نشان میدهد.
1<?php
2
3$str = "Faradars.org";
4
5// prints the length of the string
6echo strlen($str);
7
8?>
تابع strlen در مثال بالا متغیر$str را به عنوان ورودی دریافت میکند و طول این رشته را به عنوان خروجی بر میگرداند. در ادامه خروجی حاصل از اجرای قطعه کد بالا آورده شده است.
12
تابع trim در PHP
تابع trim یکی دیگر از توابع PHP در زمینه کار با رشتهها است. با استفاده از این تابع میتوان فضای خالی اول و آخر رشته را حذف کرد. علاوه بر این، امکان حذف کاراکترها و موارد تعریف شده نیز توسط این تابع وجود دارد.
سینتکس تعریف تابع trim در PHP به صورت زیر است.
1trim($string, $charlist)
با توجه به تعریف بالا این تابع ۲ پارامتر به عنوان ورودی دریافت میکند که به شرح زیر هستند.
- $string : این پارامتر رشته مورد نظری را مشخص میکند که فضای خالی و کاراکترهای تعریف شده باید از دو سمت آن حذف شوند. تعیین این پارامتر در تعریف تابع اجباری است.
- $charlist : این پارامتر کاراکترهایی را مشخص میکند که باید از دو سمت رشته حذف شوند. قرار دادن این پارامتر در تعریف تابع اختیاری است و در صورت عدم تعیین این پارامتر تمام کاراکترهای از پیش تعریف شده زیر از رشته مورد نظر حذف خواهند شد.
- "0\" یا Null
- "t\" یا tab
- "n\" یا newline
- "x0B\" یا vertical tab
- "r\" یا carriage return
- " " یا white space
قطعه کد زیر مثالی از نحوه عملکرد تابع trim در PHP را نشان میدهد.
1<?php
2// PHP program to demonstrate the use of trim()
3// function when second parameter is present
4
5// removes the predefined characters from
6// front and back
7$str = "Hello World!";
8echo trim($str, "Hell!");
9?>
خروجی حاصل از اجرای قطعه کد بالا بعد از انجام عملیات توسط تابع trim به صورت زیر خواهد بود.
o World
تابع die در PHP
در ادامه معرفی توابع PHP در این بخش تابع die مورد بررسی قرار خواهد گرفت. فراخوانی این تابع در PHP موجب توقف اجرای ادامه دستورات میشود. علاوه بر این، امکان چاپ پیام در خروجی با استفاده از این تابع وجود دارد.
نحوه تعریف این تابع به صورت زیر است.
1die($message)
قرار دادن پارامتر$message در تعریف این تابع اختیاری است و پیامی را در خروجی بعد از توقف اجرای دستورات چاپ میکند. در ادامه مثالی از کاربرد تابع die در PHP آورده شده است.
1<?php
2$value = 15;
3
4if( $value < 25 ){
5 die("stop..");
6}
7
8echo $value;
9?>
در مثال بالا با توجه به مقدار متغیر$value شرط مورد نظر برقرار میشود. فراخوانی تابع die فرایند اجرای سایر دستورات را متوقف میکند. در نتیجه، دستور echo در انتهای دستورات اجرا نخواهد شد. خروجی حاصل از اجرای دستورات بالا به صورت زیر خواهد بود.
stop..
تابع exit در PHP
برای خاتمه اجرای دستورات در زبان PHP علاوه بر تابع die از تابع exit نیز میتوان استفاده کرد. exit یکی از توابع PHP است که همزمان با چاپ پیام در خروجی اجرای دستورات بعدی را نیز متوقف میکند. سینتکس تعریف این تابع در زبان PHP به صورت زیر است.
1exit($message)
قرار دادن پارامتر$message در تعریف بالا اختیاری است. این پارامتر پیام چاپ شده در خروجی را مشخص میکند. در ادامه برخی نکات مهم در خصوص استفاده تابع exit در PHP عنوان شده است.
- تابع exit یک language construct است و در صورت نداشتن پارامتر ورودی میتوان آن را بدون پرانتز نیز فراخوانی کرد.
- اگر پارامتر ورودی ارسالی به تابع exit از نوع عدد صحیح باشد، آنگاه تابع از این مقدار به عنوان وضعیت خروج استفاده میکند. در نتیجه، تابع مقداری را در خروجی چاپ نخواهد کرد.
- در صورت ارسال عدد صحیح به تابع exit برای تعیین وضعیت خروج این عدد باید در محدوده ۰ تا ۲۵۴ باشد. همچنین، امکان استفاده از عدد ۲۵۵ وجود ندارد، زیرا این مقدار توسط PHP رزرو شده است.
قطعه کد زیر نحوه پیادهسازی و کاربرد تابع exit در زبان PHP را نشان میدهد.
1<?php
2//declaring variables
3$a=5;
4$b=5.0;
5
6if($a==$b)
7{
8 //terminating script with a message using exit()
9 exit('variables are equal');
10}
11else
12{
13//terminating script with a message using exit()
14 exit('variables are not equal');
15}
16?>
خروجی حاصل از اجرای قطعه کد بالا نیز به صورت زیر خواهد بود.
variables are equal
تابع phpinfo در PHP
در ادامه بررسی توابع PHP در این بخش تابع phpinfo مورد بررسی قرار خواهد گرفت. تابع phpinfo اطلاعات بسیار مفیدی را در خصوص پیکربندی و تنظیمات نسخه PHP نصب شده بر روی سرور ارائه میدهد. اطلاعات برگشتی از تابع phpinfo شامل موارد مهمی همچون نسخه php، نوع سرور، نسخه سیستمعامل، متغیرهای محیطی، گزینههای پیکربندی و سایر موارد میشود. نحوه پیادهسازی تابع phpinfo به صورت زیر است.
1<?php
2 phpinfo();
3?>
اجرای دستور بالا تمام اطلاعات مربوط به تنظیمات نسخه php نصب شده بر روی سرور را در اختیار ما قرار میدهد.
تابع include در PHP
بدون شک تابع include یکی از پرکاربردترین و مهمترین توابع PHP است. با استفاده از این تابع میتوان از کدهای PHP نوشته شده درون سایر فایلها استفاده کرد. در نتیجه، استفاده از این تابع ضمن جلوگیری از تکرار کدها به افزایش خوانایی و سازماندهی بهتر پروژه نیز کمک میکند. میتوان توابع پرتکرار و بخشهای مشترک کد را درون فایلی مجزا قرار داد و این فایل را به کمک تابع include در بخشهای مورد نیاز فراخوانی کرد. به عنوان مثال، کدهای مرتبط با ارتباط با «پایگاه داده» (Database) یا بخش Header یا Footer سایت نمونهای از کاربردهای تابع include هستند. سینتکس پیادهسازی این تابع به صورت زیر است.
1include("path/to/filename");
با توجه به سینتکس ارائه شده در بالا امکان فراخوانی این تابع با پرانتز و بدون پرانتز وجود دارد.
مثالی از پیادهسازی تابع include در PHP
همان طور که در بالا نیز عنوان شد، میتوان از تابع include به منظور پیادهسازی بخشهای مشترک رابط کاربری نظیر منوها، Header و Footer نیز استفاده کرد. در مثال زیر منو سایت درون فایلmenu.php طراحی شده است و تمام صفحات سایت باید از این منو استفاده کنند. کدهای مربوط به این فایل به صورت زیر هستند.
1<?php
2echo '<a href="/default.asp">Home</a> -
3<a href="/html/default.asp">HTML Tutorial</a> -
4<a href="/css/default.asp">CSS Tutorial</a> -
5<a href="/js/default.asp">JavaScript Tutorial</a> -
6<a href="default.asp">PHP Tutorial</a>';
7?>
برای افزایش خوانایی پروژه میتوان با استفاده از تابع include در PHP این فایل را در تمام بخشهای مورد نظر فراخوانی کرد. در ادامه نمونهای از فراخوانی این کد آورده شده است.
1<html>
2<body>
3
4<div class="menu">
5<?php include 'menu.php';?>
6</div>
7
8<h1>Welcome to my home page!</h1>
9<p>Some text.</p>
10<p>Some more text.</p>
11
12</body>
13</html>
در مثال بالا فایلmenu.php با تابع include در PHP فراخوانی شده است.
تابع require در PHP
تابع require در PHP عملکردی کاملاً مشابه با تابع include دارد. در واقع، با استفاده از این تابع نیز میتوان فایل و کدهای PHP را در فایلی دیگر بارگذاری کرد. سینتکس پیادهسازی این تابع نیز به صورت زیر است.
1<?php
2 require('file.php');
3?>
همچنین بدون پرانتز نیز میتوان این تابع را فراخوانی کرد.
1<?php
2 require 'file.php';
3?>
تفاوت include و require در PHP چیست؟
هر دو تابع inculde و require در PHP برای هدفی یکسان مورد استفاده قرار میگیرند. با استفاده از این دو تابع میتوان فایلهای PHP را به صورت جداگانه در فایلی دیگر بارگذاری کرد. تنها تفاوت این دو تابع در نتایج حاصل از اجرای آنها در صورت بروز خطا در فایل بارگذاری شده است. در صورت بروز خطا در فایل بارگذاری شده تابع inculde هشداری را به کاربر نمایش میدهد و سپس به اجرای سایر خطوط برنامه میپردازد. در نقطه مقابل اما تابع require در صورت بروز خطا در فایل بارگذاری شده با چاپ خطای fatal اجرای سایر خطوط برنامه را متوقف میکند. بنابراین، برنامهنویس PHP با در نظر گرفتن این تفاوت باید نسبت به انتخاب تابع مناسب از بین include و require اقدام کند.
تابع mail در PHP
همان طور که در ابتدای نوشته نیز عنوان شد، توابع PHP بسیار گسترده هستند و طیف وسیعی از کاربردهای و عملکردهای گوناگون را در بر میگیرند. به عنوان مثال، با استفاده از تابع mail در PHP میتوان به طور مستقیم از طریق اسکریپت PHP ایمیل ارسال کرد. نحوه کار با تابع mail در PHP بسیار آسان است. در ادامه نحوه پیادهسازی این تابع در PHP آورده شده است.
1mail(to,subject,message,headers,parameters);
با توجه به سینتکس ارائه شده در بالا تابع mail دارای ۵ پارامتر ورودی است که در ادامه توضیحاتی در خصوص هر کدام از این پارامترها ارائه شده است.
- to : قرار دادن این پارامتر در تعریف تابع اجباری است. این پارامتر گیرنده یا گیرندگان ایمیل را مشخص میکند.
- subject : موضوع یا عنوان ایمیل توسط این پارامتر تعیین میشود. قرار دادن این پارامتر نیز در زمان تعریف تابع اجباری است. این پارامتر نباید شامل کاراکتر «خط جدید» (Newline) باشد.
- message : متن ایمیل ارسالی نیز توسط این پارامتر تعیین میشود و قرار دادن آن در زمان پیادهسازی تابع اجباری است. هر خط از متن موجود در این بخش نهایتاً ۷۰ کاراکتر میتواند داشته باشد.
- headers : اطلاعات اضافی مربوط به ایمیل نظیر لیست گیرندگان و امکان نمایش این لیست برای سایر دریافت کنندههای ایمیل در این بخش مشخص میشود. قرار دادن این پارامتر کاملاً اختیاری است.
- parameters : قرار دادن این پارامتر نیز در زمان فراخوانی تابع کاملاً اختیاری است و به کمک آن میتوان برخی آرگومانها را به برنامه sendmail جهت مدیریت و ارسال ایمیلها فرستاد.
ارسال ایمیل در PHP
به منظور درک بهتر کارکرد تابع mail در PHP مثالی از ارسال ایمیل به کمک این تابع در این بخش آورده شده است. قطعه کد زیر نحوه ارسال ایمیل با تابع mail را نشان میدهد.
1<?php
2$to = "somebody@example.com";
3$subject = "My subject";
4$txt = "Hello world!";
5$headers = "From: webmaster@example.com" . "\r\n" .
6"CC: somebodyelse@example.com";
7
8mail($to,$subject,$txt,$headers);
9?>
در مثال بالا پارامترهای ورودی تابع mail با استفاده از متغیرها تعیین شدهاند.
تابع md5 در PHP
یکی از مسائل مهم در دنیای امروز بحث امنیت دادهها و اطلاعات است. برنامهنویسان نیز به عنوان توسعهدهندگان ابزارها و نرمافزارهای مختلف باید با مباحث مربوط به امنیت دادهها به خوبی آشنا باشند. امروزه روشها و الگوریتمهای رمزنگاری مختلفی برای محافظت از دادهها توسعه داده شده است. یکی از معروفترین و پرکاربردترین الگوریتمهای رمزنگاری md5 نام دارد.
به کمک توابع PHP به سادگی میتوان از این الگوریتم رمزنگاری در فرایند توسعه برنامهها استفاده کرد. تابع md5 در PHP رشته دریافتی را رمزنگاری میکند. سینتکس پیادهسازی این تابع در PHP به صورت زیر است.
1Boolean md5(string,raw)
پارامترهای ورودی تابع md5 به صورت زیر هستند.
- string : این پارامتر رشته مورد نظر برای رمزنگاری را مشخص میکند و قرار دادن آن در زمان فراخوانی تابع اجباری است.
- raw : قرار دادن این پارامتر اختیاری است و فرمت رشته خروجی را مشخص میکند. در صورتی که این پارامتر برابر True قرار داده شود، آنگاه خروجی در قالب باینری با طول ۱۶ کاراکتر برگشت داده خواهد شد.
قطعه کد زیر نحوه استفاده از تابع md5 در PHP را نشان میدهد.
1<?php
2$str = "Hello";
3echo md5($str);
4
5if (md5($str) == "8b1a9953c4611296a827abf8c47804d7")
6 {
7 echo "<br>Hello world!";
8 exit;
9 }
10?>
در مثال بالا رشته Hello با استفاده از الگوریتم md5 رمزنگاری شده است. خروجی کد بالا به صورت زیر خواهد بود.
8b1a9953c4611296a827abf8c47804d7 Hello world!
تابع htmlspecialchars در PHP
htmlspecialchars یکی از توابع PHP است که به منظور تبدیل کاراکترهای خاص به موجودیتهای HTML مورد استفاده قرار میگیرد. در ادامه برخی از کاراکترهای خاص و تبدیل آنها ارائه شده است.
- کاراکتر& به عبارت& تبدیل میشود.
- کاراکتر" به عبارت" تبدیل میشود.
- کاراکتر' به عبارت' تبدیل میشود.
- کاراکتر< به عبارت< تبدیل میشود.
- کاراکتر> به عبارت> تبدیل میشود.
تابع htmlspecialchars تنها یک پارامتر ورودی از نوع رشته دریافت میکند و خروجی مورد نظر را بعد از تبدیل کاراکترهای خاص برگشت میدهد. قطعه کد زیر نحوه پیادهسازی این تابع را نشان میدهد.
1$string = 'This is <b>bold</b> text.';
2
3$new_string = htmlspecialchars($string);
4
5echo $new_string;
خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
1This is <b>bold</b> text.
توابع آرایه در PHP
آرایهها یکی از ساختمان دادههای بسیار پرکاربرد و مهم در دنیای برنامه نویسی هستند. در زبان برنامه نویسی PHP نیز از آرایه برای ذخیرهسازی عناصر به صورت جفتهای کلید-مقدار استفاده میشود.
آرایهها این امکان را فراهم کردهاند تا بتوان لیستی از عناصر با نوعهای دادهای مختلف را درون یک متغیر ذخیره کرد. به عنوان مثال، برای ذخیرهسازی لیست کارمندان یک شرکت ۲۵ نفری به جای استفاده از ۲۵ متغیر جداگانه میتوان آرایهای با طول ۲۵ تعریف کرد. در این بخش از نوشته سعی شده است تا فهرستی از توابع PHP مرتبط با آرایهها به همراه مثال کاربردی ارائه شود. پیشتر در مطلب زیر از مجله فرادرس آرایههای PHP به زبان ساده مورد بررسی قرار گرفتهاند.
تابع implode در PHP
تابع implode یکی از توابع PHP است که برای اتصال عناصر آرایه به یکدیگر و ارائه آنها در قالب خروجی «رشته» (String) مورد استفاده قرار میگیرد. در واقع این تابع به عنوان ورودی یک آرایه را به همراه یک علامت جدا کننده دریافت میکند و سپس بر اساس آن عناصر موجود در آرایه را به هم میچسباند. نحوه تعریف تابع implode در PHP به صورت زیر است.
1implode($separator_string, $array)
پارامترهای ورودی تابع implode به صورت زیر هستند.
- $array : آرایه مورد نظر که عناصر آن باید با یکدیگر الحاق شوند.
- $separator_string : این پارامتر علامت جدا کننده عناصر آرایه در خروجی را مشخص میکند. قرار دادن این پارامتر در تعریف تابع implode کاملاً اختیاری است و در صورت عدم ارائه برابر رشته خالی در نظر گرفته میشود.
مثال زیر نحوه استفاده از تابع implode در PHP را نشان میدهد.
1$fruits = array('apple', 'banana', 'orange');
2
3$fruits_string = implode(', ', $fruits);
4
5echo $fruits_string;
خروجی حاصل از اجرای قطعه کد بالا نیز به صورت زیر خواهد بود.
apple, banana, orange
عناصر موجود در آرایه با کاراکتر جدا کننده مشخص شده در قالب خروجی رشته برگشت داده شده است.
Explode در PHP
Explode یکی دیگر از توابع PHP است که دقیقاً در نقطه مقابل تابع implode قرار دارد. این تابع دو پارامتر ورودی اجباری یعنی یک رشته و یک کاراکتر جدا کننده دریافت میکند و سپس بر اساس این جدا کننده رشته دریافتی را در قالب یک آرایه در خروجی بر میگرداند. در واقع تابع Explode بر اساس کاراکتر جدا کننده مشخص شده درون رشته دریافتی جستجو میکند و به محض رسیدن به این کاراکتر بخش مورد نظر را به عنوان یک عنصر آرایه قرار میدهد. تابع Explode در PHP به صورت زیر تعریف میشود.
1array explode(separator, OriginalString, NoOfElements)
پارامترهای تابع Explode در PHP کدامند؟
تابع Explode سه پارامتر را به عنوان ورودی دریافت میکند که دو پارامتر آن اجباری و یک پارامتر اختیاری است. در ادامه پارامترهای دریافتی تابع Explode توضیح داده شده است.
- separator : این پارامتر به کاراکتر جدا کننده رشته اختصاص دارد. در واقع این کاراکتر نقاط بحرانی رشته را مشخص میکند که در آن نقاط رشته جدا میشود. به عبارت دیگر ظاهر شدن این کاراکتر در رشته نماد پایان یک عنصر از آرایه و شروع عنصر دیگر است.
- OriginalString : این پارامتر رشته ورودی مورد نظر را مشخص میکند.
- NoOfElements : قرار دادن این پارامتر در تعریف تابع Explode کاملاً اختیاری است. این پارامتر محدودیت در تقسیمبندی رشته را مشخص میکند. به عنوان مثال، با تعیین عدد ۳ برای این متغیر تنها ۳ تقسیمبندی انجام خواهد شد. همچنین، در صورتی قرار دادن عدد ۱- برای آن آنگاه تمام تقسیمبندی به جز قسمت آخر انجام میشود.
مثال عملی از پیادهسازی تابع Explode در PHP
Explode یکی از توابع PHP بسیار پرکاربرد است که برای درک بهتر نحوه کار آن مثال زیر ارائه شده است.
1$str = 'one,two,three,four';
2
3// محدودیت به میزان ۲
4print_r(explode(',',$str,2));
5
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Array ( [0] => one [1] => two,three,four )
در قطعه کد بالا با توجه به تعیین محدودیت به میزان ۲ رشته دریافتی به آرایهای با ۲ عنصر تبدیل میشود.
تابع print_r در PHP
print_r یکی از توابع PHP است که به طور ویژه برای چاپ عناصر آرایه مورد استفاده قرار میگیرد. البته امکان چاپ سایر متغیرها و نوعهای دادهای نیز با استفاده از این تابع وجود دارد. علاوه بر این، میتوان مقدار بازگشتی توسط این تابع را درون متغیر نیز ذخیره کرد.
نحوه تعریف تابع print_r در PHP به صورت زیر است.
1print_r( $variable, $isStore )
با توجه به تعریف بالا این تابع ۲ پارامتر را به عنوان ورودی دریافت میکند که در ادامه هر کدام توضیح داده شدهاند.
- $variable : این پارامتر متغیر مورد نظر برای چاپ در خروجی نشان میدهد که میتواند آٰرایه، عدد صحیح، رشته یا هر نوع دادهای دیگری باشد. قرار دادن این پارامتر در تعریف تابع اجباری است.
- $isStore : قرار دادن این پارامتر در تعریف تابع اختیاری است. با توجه به نوع دادهای Boolean این پارامتر مقدار آن میتواند True یا False باشد. در صورت قرار دادن مقدار True برای این پارامتر امکان ذخیره عبارت بازگشتی توسط تابع درون متغیر وجود دارد.
قطعه کد زیر نحوه پیادهسازی این تابع را نشان میدهد.
1<?php
2
3
4// array variable
5$arr = array('0' => "Welcome", '1' => "to", '2' => "Faradars");
6
7// printing the variables
8print_r($arr);
9
10?>
خروجی قطعه کد بالا نیز به صورت زیر خواهد بود.
Array ( [0] => Welcome [1] => to [2] => Faradars )
تابع array_reduce در PHP
تابع array_reduce عناصر موجود در آرایه را به تابع تعریف شده توسط کاربر ارسال میکند و یک مقدار واحد از نوع رشته، عدد صحیح یا عدد اعشاری بر میگرداند. استفاده از این تابع برای انجام عملیات بر روی تمام عناصر آرایه بسیار مفید است. به عنوان مثال، با تابع array_reduce در PHP میتوان مجموع عناصر آرایه را محاسبه کرد. نحوه تعریف این تابع در PHP به صورت زیر است.
1array_reduce($array, own_function, $initial)
این تابع ۳ پارامتر را به عنوان ورودی دریافت میکند که در ادامه توضیحات لازم در خصوص هر کدام از این پارامترها ارائه شده است.
- $array : این پارامتر به آرایه ارسالی اشاره دارد و قرار دادن آن اجباری است.
- own_function : این پارامتر تابع مورد نظر برای انجام عملیات بر روی عناصر آرایه را مشخص میکند و قرار دادن آن نیز اجباری است.
- $initial : قرار دادن این پارامتر کاملاً اختیاری است و به کمک میتوان مقداری را به تابع ارسال کرد.
مثالی از پیادهسازی تابع array_reduce در PHP
برای درک بهتر نحوه کار تابع array_reduce در PHP مثال زیر ارائه شده است.
1$numbers = array(1, 2, 3, 4, 5);
2
3function add($carry, $item) {
4 return $carry + $item;
5}
6
7$sum = array_reduce($numbers, 'add');
8
9echo $sum;
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
15
در مثال بالا آرایه$numbers و تابعadd به عنوان پارامتر ورودی به تابع array_reduce ارسال شدهاند که در نتیجه، مجموع عناصر آرایه توسط تابعadd محاسبه و در خروجی چاپ میشود.
تابع array_reverse در PHP
array_reverse یکی دیگر از توابع PHP در زمینه کار با آرایهها است. این تابع برای معکوس کردن ترتیب قرارگیری عناصر در آرایه به کار گرفته میشود. به بیان ساده این تابع یک آرایه را به عنوان ورودی دریافت میکند و آن را به صورت معکوس شده بر میگرداند. در صورت نیاز به پیمایش عناصر آرایه به صورت معکوس میتوان از تابع array_reverse استفاده کرد. قطعه کد زیر نحوه پیادهسازی و استفاده از تابع را نشان میدهد.
1$fruits = array('apple', 'banana', 'orange');
2
3$reverse_fruits = array_reverse($fruits);
4
5print_r($reverse_fruits);
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Array ( [0] => orange [1] => banana [2] => apple )
در مثال بالا آرایه$fruits به عنوان ورودی به تابع array_reverse ارسال شده است. بنابراین، با توجه به خروجی حاصل ترتیب قرارگیری عناصر درون آرایه معکوس شده است.
تابع array_filter در PHP
تابع array_filter در PHP مقادیر آرایه را بر اساس تابع ورودی فیلتر میکند و نتیجه را در قالب آرایه در خروجی بر میگرداند. توسعهدهندگان میتوانند از این تابع برای فیلتر کردن مقادیر خاص آرایه استفاده کنند.
سینتکس تابع array_filter در PHP به صورت زیر است.
1array array_filter($array, $callback_function, $flag)
تابع array_filter دارای ۳ پارامتر ورودی است که از این تعداد یک مورد اجباری و دو مورد دیگر اختیاری هستند. پارامترهای ورودی تابع array_filter به صورت زیر هستند.
- $array : این پارامتر به آرایه ورودی اشاره دارد که اطلاعات موجود در آن باید فیلتر شود. قرار دادن این پارامتر در تعریف تابع اجباری است.
- $callback_function : تابع تعریف شده توسط کاربر جهت فیلتر کردن اطلاعات آرایه در این بخش قرار میگیرد. ارسال این پارامتر در تعریف تابع اختیاری است و در صورت عدم تعیین این پارامتر مقادیر False موجود در آرایه در خروجی حذف خواهند شد.
- $flag : این پارامتر اختیاری نیز آرگومانهای ارسالی به تابع$callback_function را مشخص میکند. با قرار دادن مقدار ARRAY_FILTER_USE_KEY برای این پارامتر تنها کلیدهای آرایه به تابع ارسال میشود و در صورت تعیین مقدار ARRAY_FILTER_USE_BOTH علاوه بر کلیدها، مقادیر متناظر آنها در آرایه نیز به تابع ارسال میشود.
مثالی از پیادهسازی تابع array_filter در PHP
برای درک بهتر کارکرد تابع array_filter در PHP مثال زیر ارائه شده است.
1<?php
2
3// PHP function to check for even elements in an array
4function Even($array)
5{
6 // returns if the input integer is even
7 if($array%2==0)
8 return TRUE;
9 else
10 return FALSE;
11}
12
13$array = array(12, 0, 0, 18, 27, 0, 46);
14print_r(array_filter($array, "Even"));
15
16?>
در قطعه کد بالا آرایه$array و تابعEven به عنوان پارامتر ورودی به تابع array_filter ارسال شدهاند. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Array ( [0] => 12 [1] => 0 [2] => 0 [3] => 18 [5] => 0 [6] => 46 )
در مثال بالا از تابع array_filter به منظور فیلتر کردن اعداد زوج موجود در آرایه استفاده شده است. در نتیجه، خروجی حاصل از اجرای قطعه کد بالا نیز اعداد زوج موجود در آرایه را نشان میدهد.
تابع in_array در PHP
تابع in_array یکی از توابع PHP بسیار پرکاربرد است که به منظور بررسی وجود یا عدم وجود مقداری مشخص در آرایه مورد استفاده قرار میگیرد. این تابع در صورت وجود داشتن مقدار در آرایه مقدار True بر میگرداند و در غیر این صورت مقدار False را برگشت میدهد. نحوه تعریف این تابع به صورت زیر است.
1bool in_array( $val, $array_name, $mode )
پارامترهای موجود در تابع in_array به صورت زیر هستند.
- $val : این پارامتر مقدار مورد جستجو درون آرایه را مشخص میکند.
- $array_name : نام آرایه مورد نظر برای جستجو اطلاعات توسط این پارامتر مشخص میشود.
- $mode :این پارامتر شیوه جستجو درون آرایه را تعیین میکند و استفاده از آن در تعریف تابع اختیاری است. اگر این مقدار برابر True قرار داده شود، آنگاه نوع دادهای متغیر نیز اهمیت دارد.
برای درک بهتر عملکرد این تابع به مثال زیر توجه کنید.
1$fruits = array('apple', 'banana', 'orange');
2
3if (in_array('banana', $fruits)) {
4 echo 'Banana is in the array!';
5} else {
6 echo 'Banana is not in the array.';
7}
در قطعه کد بالا مقدارbanana درون آرایه$fruits از طریق تابع in_array جستجو شده است که خروجی حاصل از اجرای آن به صورت زیر خواهد بود.
Banana is in the array!
تابع array_walk_recursive در PHP
array_walk_revcursive یکی دیگر از توابع PHP است که در زمینه کار با آرایهها کاربرد دارد. این تابع بر روی تمام عناصر آرایه عمل پیمایش را انجام میدهد و تابع تعریف شده توسط کاربر را بر روی هر عنصر موجود در آرایه به صورت بازگشتی اعمال میکند. در واقع، کلیدها و عناصر آرایه به عنوان پارامتر ورودی به این تابع ارسال میشوند. نحوه پیادهسازی این تابع در PHP به صورت زیر است.
1boolean array_walk_recursive($array, myFunction, $extraParam)
این تابع در تعریف خود ۳ پارامتر را به عنوان ورودی دریافت میکند که دو مورد اجباری و یک مورد اختیاری است. در ادامه هر کدام از پارامترهای مورد استفاده در تعریف این تابع معرفی شدهاند.
- $array : این پارامتر آرایه مورد نظر برای پیمایش را مشخص میکند و قرار دادن آن در تعریف اجباری است.
- myFunction : این پارامتر تابع تعریف شده توسط کاربر برای اعمال بر روی آرایه را نشان میدهد که قرار دادن آن نیز اجباری است.
- $extraparam : قرار دادن این پارامتر در تعریف تابع کاملاً اختیاری است و به منظور تعیین پارامتر اضافی برای تابع تعریف شده توسط کاربر یعنیmyFunction کاربرد دارد.
خروجی تابع array_walk_revcursive در PHP نیز یک مقدار از نوع Boolean است که در صورت موفقیت مقدار True و در صورت عدم موفقیت مقدار False را برگشت میدهد.
مثالی از پیادهسازی تابع array_walk_revcursive در PHP
برای درک بهتر کاربرد و نحوه پیادهسازی تابع array_walk_revcursive به مثال زیر توجه کنید.
1<span class="hljs-variable">$data</span> = <span class="hljs-keyword">array</span>(
2<span class="hljs-keyword">array</span>(<span class="hljs-string">'id'</span> => <span class="hljs-number">1</span>, <span class="hljs-string">'name'</span> => <span class="hljs-string">'John'</span>, <span class="hljs-string">'children'</span> => <span class="hljs-keyword">array</span>(<span class="hljs-string">'Alice'</span>, <span class="hljs-string">'Bob'</span>)),
3<span class="hljs-keyword">array</span>(<span class="hljs-string">'id'</span> => <span class="hljs-number">2</span>, <span class="hljs-string">'name'</span> => <span class="hljs-string">'Jane'</span>, <span class="hljs-string">'children'</span> => <span class="hljs-keyword">array</span>(<span class="hljs-string">'Charlie'</span>, <span class="hljs-string">'David'</span>)),
4);
5
6<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">add_last_name</span>(<span class="hljs-params">&<span class="hljs-variable">$value</span>, <span class="hljs-variable">$key</span></span>) </span>{
7<span class="hljs-keyword">if</span> (<span class="hljs-variable">$key</span> === <span class="hljs-string">'name'</span>) {
8<span class="hljs-variable">$value</span> .= <span class="hljs-string">' Doe'</span>;
9}
10}
11
12<span class="hljs-title.function.invoke">array_walk_recursive</span>(<span class="hljs-variable">$data</span>, <span class="hljs-string">'add_last_name'</span>);
13
14<span class="hljs-title.function.invoke">print_r</span>(<span class="hljs-variable">$data</span>);
در قطعه کد بالا آرایه$data به همراه کلیدها و مقادیر مشخص شده است. همچنین، تابعadd_last_name نیز به عنوان تابع تعریف شده توسط کاربر در صورت یافتن کلیدname عبارتDoe را به مقدار متناظر آن الحاق میکند. در ادامه خروجی حاصل از اجرای قطعه بالا آورده شده است.
Array ( [0] => Array ( [id] => 1 [name] => John Doe [children] => Array ( [0] => Alice Doe [1] => Bob Doe ) ) [1] => Array ( [id] => 2 [name] => Jane Doe [children] => Array ( [0] => Charlie Doe [1] => David Doe ) ) )
تابع array_column در PHP
تابع array_column یکی از توابع داخلی PHP است که به منظور استخراج ستونی از مقادیر از آرایه چند بعدی یا آرایهای از اشیا مورد استفاده قرار میگیرد. توسعهدهندگان میتوانند از این تابع به منظور استخراج داده از نتایج جستجوی پایگاه داده یا فایلهای با فرمت CSV استفاده کنند.
قطعه کد زیر نحوه تعریف این تابع به همراه پارامترهای ورودی مورد نیاز آن را نشان میدهد.
1array_column(array $input, mixed $columnKey, mixed $indexKey = null)
پارامترهای ورودی مورد نیاز تابع array_column در PHP به شرح زیر هستند.
- $input : این پارامتر به آرایه چند بعدی یا آرایهای از اشیا اشاره دارد که قصد استخراج ستونی از اطلاعات آن را داریم.
- $columnKey : این پارامتر ستون مورد نظر برای استخراج اطلاعات آرایه را مشخص میکند.
- $indexKey : استفاده از این پارامتر در تعریف تابع array_column اختیاری است. این پارامتر کلیدهای آرایه خروجی را مشخص میکند و در صورتی عدم مقداردهی در زمان تعریف تابع کلیدهای عددی برای آرایه خروجی در نظر گرفته میشود.
برای درک بهتر نحوه تعریف و فراخوانی تابع array_column در PHP مثال زیر ارائه شده است.
1$data = array(
2 array('id' => 1, 'name' => 'John', 'age' => 25),
3 array('id' => 2, 'name' => 'Jane', 'age' => 30),
4 array('id' => 3, 'name' => 'Bob', 'age' => 35),
5);
6
7$ages = array_column($data, 'age');
8
9print_r($ages);
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
Array ( [0] => 25 [1] => 30 [2] => 35 )
در خروجی بالا اطلاعات مربوط به ستونage از آرایه$data برگشت داده شده است. با توجه به عدم تعیین پارامتر$indexKey در تعریف تابع array_column کلیدهای عددی برای آرایه خروجی در نظر گرفته شده است.
توابع کار با پوشهها در PHP
در زمینه کار با پوشهها نیز میتوان از توابع PHP و قابلیتهای ارائه شده توسط آن استفاده کرد. زبان برنامه نویسی PHP توابعی مختلفی برای کار با پوشهها معرفی کرده است. توابع PHP عملکردهای مختلفی همچون ایجاد پوشه جدید، باز کردن دایرکتوری، بستن دایرکتوری، حذف پوشه و سایر موارد را در اختیار برنامهنویس قرار میدهند.
در این بخش چند مورد از مهمترین توابع کار با پوشهها در PHP به همراه مثال معرفی شدهاند.
تابع mkdir در PHP
با استفاده از تابع mkdir میتوان دایرکتوری یا پوشه جدیدی را مسیر فعلی ایجاد کرد. قطعه کد زیر نحوه ایجاد پوشه جدید به کمک این تابع را نشان میدهد.
1<?php
2 mkdir("test");
3?>
دستور بالا دایرکتوری جدیدی به نام test را در مسیر فعلی ایجاد میکند. همچنین میتوان درون پوشه ایجاد شده نیز پوشه جدیدی ایجاد کرد.
1<?php
2 mkdir("test/newfolder");
3?>
با اجرای دستور بالا پوشه newfolder درون دایرکتوری test ایجاد خواهد شد.
تابع opendir در PHP
تابع opendir در PHP برای باز کردن مسیر دایرکتوری مشخص شده مورد استفاده قرار میگیرد. مسیر مورد نظر برای باز شدن به عنوان پارامتر ورودی به این تابع ارسال میشود. در صورت موفقیت آمیز بودن عملیات مسیر دایرکتوری به عنوان مقدار بازگشتی برگشت داده خواهد شد و در صورت عدم موفقیت تابع مقدار False را بر میگرداند. قطعه کد زیر نحوه پیادهسازی این تابع را نشان میدهد.
1<?php
2// opening a directory and reading its contents
3$dir_handle = opendir("user/gfg/sample.docx");
4?>
تابع readdir در PHP
تابع readdir در PHP محتوای پوشهها و فایلهای موجود درون دایرکتوری باز شده توسط تابع opendir را میخواند. این تابع نام پوشهها و فایلهای موجود در دایرکتوری را به ترتیب ذخیرهسازی آنها در سیستم فایل بر میگرداند. در واقع، مسیر دایرکتوری به عنوان پارامتر ورودی به این تابع ارسال و نام فایلها و پوشههای موجود در آن نیز به عنوان خروجی برگشت داده میشود. قطعه کد زیر نحوه پیادهسازی این تابع را نشان میدهد.
1// opening a directory
2$dir_handle = opendir("user/gfg/");
3
4// reading the contents of the directory
5while(($file_name = readdir($dir_handle)) !== false)
6{
7echo("File Name: " . $file_name);
8echo "<br>" ;
9}
تابع closedir در PHP
تابع closedir در PHP به منظور بستن دایرکتوری فعلی مورد استفاده قرار میگیرد. مسیر دایرکتوری فعلی که باید بسته شود به عنوان پارامتر ورودی به این تابع ارسال میشود. دایرکتوری ارسالی حتما باید پیش از این توسط تابع opendir در PHP باز شده باشد. نحوه فراخوانی این تابع به صورت زیر است.
1<?php
2$dir = "/images/";
3
4// Open a directory, and read its contents
5if (is_dir($dir)){
6 if ($dh = opendir($dir)){
7 while (($file = readdir($dh)) !== false){
8 echo "filename:" . $file . "<br>";
9 }
10 closedir($dh);
11 }
12}
13?>
تابع rmdir در PHP
در زبان برنامه نویسی PHP برای حذف دایرکتوری خالی از تابع rmdir باید استفاده کرد. تابع rmdir به عنوان پارامتر ورودی دایرکتوری مورد نظر را دریافت میکند. خروجی تابع rmdir نیز از نوع Boolean است. در صورت موفقیت مقدار True و در غیر این صورت مقدار False توسط این تابع برگشت داده میشود. قطعه کد زیر مثالی از پیادهسازی تابع rmdir در PHP را نشان میدهد.
1<?php
2// creating a directory named gfg
3$dirname = "gfg";
4
5// removing directory using rmdir()
6if(rmdir($dirname))
7{
8echo ("$dirname successfully removed");
9}
10else
11{
12echo ($dirname . "couldn't be removed");
13}
14?>
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
gfg successfully removed
مثالی از توابع کار با پوشهها در PHP
در این بخش برای درک بهتر نحوه عملکرد هر کدام از توابع PHP مربوط به کار با پوشهها مثالی ارائه شده است. معمولاً توابع کار با پوشهها در ترکیب با یکدیگر مورد استفاده قرار میگیرند. قطعه کد زیر این مسئله را به خوبی نشان میدهد.
1<?php
2
3// opening a directory and reading its contents
4$dir_handle = opendir("user/gfg/sample.docx");
5
6if(is_resource($dir_handle))
7{
8 while(($file_name = readdir($dir_handle)) == true)
9 {
10 echo("File Name: " . $file_Name);
11 echo "<br>" ;
12 }
13
14 // closing the directory
15 closedir($dir_handle);
16}
17else
18{
19echo("Directory Cannot Be Opened.");
20}
21?>
در مثال بالا از تابع opendir برای باز کردن دایرکتوری فعلی، از تابع readdir برای خواندن اطلاعات موجود در دایرکتوری و از تابع closedir برای بستن دایرکتوری استفاده میشود. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر است.
File Name: sample.docx
توابع ریاضی در PHP
انجام عملیات ریاضی مختلف یکی از دغدغهها و مسائلی است که همیشه برنامهنویسان فارغ از زبان برنامه نویسی مورد استفاده با آن درگیر بودهاند. در زبان برنامه نویسی PHP نیز برای راحتتر شدن کار برنامهنویس توابع ریاضی مختلفی ارائه شده است.
بر همین اساس در این بخش از نوشته توابع PHP فهرست کاملی از توابع ریاضی موجود در این زبان به همراه کاربردهای هر کدام ارائه شده است.
تابع ceil در PHP
گاهی اوقات در مسائل ریاضی نیاز است تا عدد اعشاری به بزرگترین عدد صحیح بعد از خود گِرد شود. برای این منظور در لیست توابع ریاضی PHP میتوان از تابع ceil استفاده کرد. تابع ceil در PHP با دریافت یک عدد اعشاری به عنوان پارامتر ورودی بزرگترین عدد صحیح بعد از آن را به عنوان خروجی بر میگرداند.
قطعه کد زیر نحوه استفاده از این تابع در PHP را نشان میدهد.
1<?php
2$number = 4.35;
3echo ceil($number); // 5
4?>
در مثال بالا متغیر$number از نوع عدد اعشاری به عنوان پارامتر ورودی به تابع ceil ارسال شده است. خروجی حاصل از اجرای این قطعه کد به صورت زیر خواهد بود.
5
تابع floor در PHP
تابع floor یکی دیگر از توابع PHP است که در نقطه مقابل تابع ceil قرار میگیرد. این تابع یک عدد اعشاری را به عنوان پارامتر ورودی دریافت میکند و نزدیکترین عدد صحیح کوچکتر از آن را بر میگرداند. به همین دلیل تابع floor در نقطه مقابل تابع ceil قرار میگیرد، زیرا تابع ceil بزرگترین عدد صحیح و این تابع کوچکترین عدد صحیح را بر میگرداند. قطعه کد زیر نحوه پیادهسازی این تابع در PHP را نشان میدهد.
1
2<?php
3 echo floor(2.8);
4 echo floor(4.8);
5 echo floor(-3.4);
6?>
خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
2 4 -4
تابع round در PHP
تابع round نیز همانند توابع ceil و floor در PHP به منظور گِرد کردن اعداد اعشاری مورد استفاده قرار میگیرد. تنها تفاوت تابع round با دو تابع دیگر در نحوه گِرد کردن اعداد اعشاری است. تابع round در PHP عدد اعشاری را به سمت عدد نزدیکتر گِرد میکند. در واقع، اگر مقدار اعشار بزرگتر یا مساوی 0.5 باشد، انگاه عدد به سمت بالا گِرد میشود و در غیر این صورت عدد اعشاری به سمت پایین گِرد خواهد شد. در ادامه مثالی در خصوص نحوه عملکرد هر کدام از توابع round ،ceil و count ارائه شده است.
1
2<?php
3 echo ceil(4.8)."<br>";
4 echo floor(4.8)."<br>";
5 echo round(4.3)."<br>";
6 echo round(4.6)."<br>";
7
8?>
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
5 4 4 5
تابع count در PHP
تابع count یکی از توابع PHP است که برای شمارش تعداد عناصر موجود درون آرایه مورد استفاده قرار میگیرد. این تابع را میتوان در هر دو لیست توابع ریاضی PHP و توابع کار با آرایه PHP دستهبندی کرد. سینتکس تعریف این تابع در PHP به صورت زیر است.
1count($array, mode)
تابع count به صورت پیشفرض تنها یک آرایه را به عنوان پارامتر ورودی دریافت میکند و تعداد عناصر موجود در آن را بر میگرداند. علاوه بر این، تابع پارامتر دیگری تحت عنوانmode نیز دریافت میکند که نحوه شمارش عناصر به صورت عادی یا بازگشتی توسط آن تعیین میشود. در ادامه، پارامترهای تابع cout در PHP آورده شده است.
- $array : آرایه مورد نیاز را نشان میدهد که تعداد عناصر موجود در آن باید شمارش شود.
- mode : نحوه شمارش عناصر توسط این پارامتر تعیین میشود. این پارامتر میتواند ۲ مقدار ۰ و ۱ را داشته باشد. به صورت پیشفرض مقدار این پارامتر ۰ است. حالت بازگشتی این تابع برای شمارش عناصر آرایههای چندبعدی کارایی دارد.
آموزش استفاده از تابع count در PHP
برا درک بهتر کاربرد تابع count در PHP مثال زیر ارائه شده است.
1<?php
2
3// PHP program to illustrate working of count()
4$array = array("Aakash", "Ravi", "Prashant", "49", "50");
5
6print_r(count($array));
7
8?>
در مثال بالا پارامتر اختیاریmode برای تابع تعیین نشده است و شمارش عناصر آرایه به صورت عادی انجام میشود. خروجی قطعه کد بالا به صورت زیر خواهد بود.
5
در قطعه کد زیر پارامتر اختیاریmode برابر ۱ تعیین شده است. البته در این مثال از آرایه دو بعدی برای شمارش استفاده شده است.
1<?php
2
3// PHP program to illustrate working of count()
4$array = array('names' => array('Aakash', 'Ravi', 'Prashant'),
5 'rollno' => array('5', '10', '15'));
6
7// recursive count - mode as 1
8echo("Recursive count: ".count($array,1)."\n");
9
10// normal count - mode as 0
11echo("Normal count: ".count($array,0)."\n");
12
13?>
خروجی قطعه کد بالا به صورت زیر خواهد بود.
Recursive count: 8 Normal count: 2
تابع abs در PHP
تابع abs یکی دیگر از توابع ریاضی موجود در PHP است که برای محاسبه قدر مطلق اعداد مورد استفاده قرار میگیرد. این تابع یک عدد صحیح یا اعشاری را به عنوان ورودی دریافت میکند و در خروجی قدر مطلق آن را بر میگرداند. در قطعه کد زیر از تابع abs در PHP استفاده شده است.
1<?php
2
3echo (abs(-6.4));
4echo (abs(-2));
5echo (abs(5));
6?>
با توجه به موارد ذکر شده قدر مطلق اعداد مورد نظر در خروجی چاپ خواهد شد. خروجی حاصل از اجرای قطعه کد بالا به صورت زیر است.
6.4 2 5
تابع pow در PHP
در ادامه بررسی لیست توابع ریاضی PHP در این بخش تابع pow مورد بررسی قرار خواهد گرفت. این تابع قابلیت محاسبه توان اعداد را دارد. تابع pow در PHP به صورت زیر تعریف میشود.
1number pow($base, $exp)
با توجه به سینتکس ارائه شده در بالا این تابع ۲ پارامتر را به عنوان ورودی دریافت میکند.
- $base : این پارامتر پایه را مشخص میکند.
- $exp : این پارامتر نیز توان را تعیین میکند.
مقدار بازگشتی تابع pow یک عدد صحیح یا اعشاری است که حاصل توان عدد تعیین شده را محاسبه میکند. نمونه کد زیر نحوه پیادهسازی و عملکرد تابع pow در PHP را نشان میدهد.
1<?php
2
3echo(pow(3, 2));
4echo(pow(-3, 2));
5echo(pow(8, 2));
6
7?>
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر است.
9 9 64
تابع sqrt در PHP
گاهی اوقات در حل مسائل ریاضی نیاز است تا ریشه دوم اعداد یا جذر آنها محاسبه شود. برای این منظور میتوان به سراغ دیگر از توابع PHP تحت عنوان sqrt رفت. این تابع یک پارامتر ورودی از نوع عدد دریافت میکند و جذر آن عدد را بر میگرداند. قطعه کد زیر نحوه پیادهسازی این تابع در PHP را نشان میدهد.
1<?php
2
3echo(sqrt(25));
4echo(sqrt(-25));
5echo(sqrt(0.09));
6echo(sqrt(0));
7
8?>
جذر هر کدام از اعداد وارد شده در قطعه کد بالا بعد از محاسبه در خروجی چاپ میشود. در ادامه، خروجی حاصل از نمونه کد بالا آورده شده است.
5 NaN 0.3 0
با توجه به خروجی حاصل از اجرای قطعه کد بالا تابع sqrt در صورت دریافت پارامتر ورودی از نوع عدد منفی مقدار NaN را برگشت میدهد، زیرا اعداد منفی جذر ندارند. سایر مقادیر محاسبه شده توسط این تابع در خروجی نشان داده شده است.
تابع min در PHP
تابع min یکی دیگر از توابع PHP بسیار پرکاربرد است. این تابع میتواند کوچکترین مقدار درون آرایه یا کوچکترین مقدار در بین چند عدد تعیین شده را محاسبه کند. بنابراین، تابع min در PHP یک آرایه یا چندین عدد را به عنوان پارامتر ورودی دریافت میکند و کمترین مقدار عددی را در بین عناصر آرایه یا اعداد ورودی بر میگرداند.
نحوه تعریف این تابع به صورت زیر است.
1min(array_values)
2
3or
4
5min(value1, value2, ...)
با توجه به سینتکس ارائه شده در بالا این تابع امکان دریافت چندین عدد مختلف را دارد. همچنین، میتوان یک آرایه از اعداد را به عنوان ورودی آن در نظر گرفت. در ادامه، مثالی از پیادهسازی و کاربرد این تابع ارائه شده است.
1<?php
2
3echo (min(12, 4, 62, 97, 26));
4
5echo (min(array(28,36,87,12)));
6
7?>
خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
4 12
در مثال بالا عدد ۴ کوچکترین مقدار در بین اعداد وارد شده و عدد ۱۲ کوچکترین مقدار در بین عناصر آرایه است.
تابع max در PHP
برای محاسبه بزرگترین مقدار عددی در بین تعداد از اعداد ورودی یا بزرگترین عنصر در بین عناصر آرایه میتوان از تابع max در PHP استفاده کرد. تابع max یک آرایه یا چندین عدد را به عنوان پارامتر ورودی دریافت میکند و بزرگترین مقدار عددی را در بین عناصر آرایه یا اعداد ورودی بر میگرداند. سینتکس تعریف این تابع به صورت زیر است.
1max(array_values)
2
3or
4
5max(value1, value2, ...)
در ادامه برای درک نحوه عملکرد این تابع مثال زیر ارائه شده است.
1<?php
2 echo (max(12, 4, 62, 97, 26));
3 echo (max(array(28,36,87,12)));
4?>
خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
97<br>87
در مثال بالا عدد ۹۷ بزرگترین عدد در بین مجموعه اعداد و عدد ۸۷ نیز بزرگترین عنصر آرایه است.
باقیمانده در PHP
یکی دیگر از توابع ریاضی پرکاربرد PHP تابع fmod است که باقیمانده تقسیم دو عدد بر یکدیگر را محاسبه میکند. تابع fmod در PHP به راحتی و تنها با دریافت مقسوم و مقسوع علیه باقیمانده تقسیم را بر میگرداند. در واقع، این تابع ۲ پارامتر را به عنوان ورودی دریافت میکند. نحوه تعریف این تابع به صورت زیر است.
1float fmod ($dividend, $divisor)
در تعریف بالا پارامتر اول مقسوم و پارامتر دوم مقسوم علیه است. مثال زیر نحوه تعریف و کاربرد این تابع کاربردی را نشان میدهد.
1<?php
2 echo fmod(12,5)."<br>";
3 echo fmod(18,6)."<br>";
4
5?>
خروجی حاصل از اجرای نمونه کد بالا به صورت زیر خواهد بود.
2 0
تابع rand در PHP
rand یکی از پرکاربردترین توابع PHP است که برای محاسبه اعداد تصادفی کاربرد دارد. با استفاده از تابع rand در PHP میتوان عددی تصادفی در محدوده مشخص تولید کرد. نحوه تعریف این تابع در PHP به صورت زیر است.
1rand($min,$max);
با توجه به تعریف فوق این تابع امکان دریافت ۲ پارامتر به عنوان ورودی را دارد که در ادامه، هر کدام از این پارامترها مورد بررسی قرار گرفتهاند.
- $min : قرار دادن این پارامتر کاملاً اختیاری است و کمترین مقدار مورد انتظار در تولید اعداد تصادفی را تعیین میکند.
- $max : قرار دادن این پارامتر نیزاختیاری است و بیشترین مقدار مورد انتظار در تولید اعداد تصادفی توسط این پارامتر تعیین میشود.
تابع rand در PHP عددی تصادفی را در محدوده$min و$max تولید میکند. مثال زیر نحوه استفاده از تابع در PHP را نشان میدهد.
1<?php
2 // Generating a random number
3 $randomNumber = rand();
4 print_r($randomNumber);
5 print_r("\n");
6
7 // Generating a random number in a
8 // Specified range.
9 $randomNumber = rand(15,35);
10 print_r($randomNumber);
11?>
خروجی حاصل از اجرای قطعه کد بالا نیز به صورت زیر خواهد بود.
12574 28
در مثال بالا ابتدا تابع rand بدون پارامتر ورودی فراخوانی شده است که در نتیجه، عدد ۱۲۵۷۴ را به عنوان عدد تصادفی تولید میکند. سپس، همین تابع به همراه ۲ پارامتر ورودی فراخوانی شده که عددی در بازه ۱۵ و ۳۵ را به عنوان خروجی برگشت میدهد.
تابع number_format در PHP
گاهی اوقات باید برای نمایش واحد پول در برنامه اعداد را سه رقم سه رقم از سمت راست جدا کرد و سپس نمایش داد. برای این منظور میتوان از تابع number_format در PHP استفاده کرد. با استفاده از پارامترهای ورودی این تابع امکان قالببندی اعداد با فرمتهای دلخواه نیز وجود دارد. سینتکس پیادهسازی این تابع به صورت زیر است.
1string number_format ( $number, $decimals, $decimalpoint, $sep )
تابع number_format در PHP دارای ۴ پارامتر ورودی است که در ادامه هر کدام معرفی شدهاند.
- $number : این پارامتر عدد مورد نظر برای قالببندی را مشخص میکند. قرار دادن این پارامتر در تعریف تابع اجباری است. اگر سایر پارامترهای موجود در تعریف تابع مشخص نشده باشند، آنگاه عدد بدون اعشار و با کاما از سمت راست سه رقم سه رقم جداسازی خواهد شد.
- $decimals : قرار دادن این پارامتر در تعریف تابع اختیاری است و تعداد رقم اعشار عدد را مشخص میکند.
- $decimalpoint : این پارامتر نیز اختیاری است و کاراکتر جداکننده را مشخص میکند.
- $sep : این پارامتر نیز نوع جداکننده را مشخص میکند و قرار دادن آن نیز اختیاری است.
برای درک بهتر کارکرد تابع number_format در PHP مثال زیر ارائه شده است.
1<?php
2$num1 = "999999.49";
3
4// With out decimal point parameter
5echo number_format($num1)."\n";
6
7// With decimal Point parameter
8echo number_format($num1, 3)."\n";
9
10$num2 = "9999999.99";
11
12// With out decimal point parameter
13// return Round value
14echo number_format($num2)."\n";
15
16// With decimal Point parameter
17echo number_format($num2, 3)."\n";
18
19// With All four parameters
20echo number_format("1000000.99", 3, "#", "GGG");
21
22
23?>
خروجی حاصل از اجرای قطعه کد بالا به صورت زیر خواهد بود.
999,999 999,999.490 10,000,000 9,999,999.990 1GGG000GGG000#990
سوالات متداول توابع PHP
بعد از بررسی مباحث بسیار مهمی همچون مفهوم تابع، مزایای استفاده از آن، انواع توابع، نحوه تعریف و فراخوانی تابع در زبان برنامه نویسی PHP در این بخش سعی شده است تا به متداولترین و پرتکرارترین سوالات مربوط به توابع PHP پاسخ داده شود.
منظور از توابع ناشناخته در PHP چیست؟
«توابع ناشناخته» (Anonymous Function) نوعی خاص از توابع در زبان برنامه نویسی PHP هستند که کاربردهای بسیاری نیز دارند. این توابع در زمان پیادهسازی بدون نام هستند و بیشتر نیز برای عملکردهای کوچک مورد استفاده قرار میگیرند. در واقع، هدف از ارائه این توابع در زبان PHP افزایش سرعت کد نویسی بوده است. قطعه کد زیر مثالی از پیادهسازی توابع ناشناخته در PHP را نشان میدهد.
1<?php
2$greet = function($name) {
3 printf("Hello %s\r\n", $name);
4};
5
6$greet('World');
7$greet('PHP');
8?>
تفاوت print و print_r در زبان PHP چیست؟
تابع print در زبان PHP برای چاپ رشته در خروجی مورد استفاده قرار میگیرد. در نقطه مقابل، تابع print_r برای چاپ آرایه استفاده میشود. البته با تابع print_r امکان چاپ رشته نیز وجود دارد.
تفاوت die و exit در PHP چیست؟
طبق توضیحات ارائه شده در سایت رسمی PHP هر دو تابع die و exit عملیات یکسانی را انجام میدهند. در واقع، با اجرای این دو تابع ادامه دستورات موجود در کد اجرا نخواهند شد. در نسخههای اولیه PHP از تابع die برای پایان عملیات استفاده میشد و سپس، تابع exit معرفی شد. به طور کلی این تابع کاملاً یکسان هستند و تفاوتی با یکدیگر ندارند.
مهمترین کاربردهای زبان برنامه نویسی PHP چیست؟
زبان برنامه نویسی PHP پرکاربردترین زبان در زمینه توسعه و طراحی وب است. بر اساس آمارهای موجود بیش از ۸۰ درصد وبسایتهای حال حاضر جهان از این زبان برنامه نویسی استفاده میکنند. این زبان برنامه نویسی به دلیل سادگی و سهولت استفاده محبوبیت بسیار زیادی در بین جامعه برنامهنویسان پیدا کرده است. زبان PHP در ابتدا به منظور توسعه صفحات وب «پویا» (Dynamic) مورد استفاده قرار میگرفت. امروزه کاربردهای PHP حوزههای مختلفی از ساخت فروشگاه اینترنتی گرفته تا توسعه شبکههای اجتماعی و وبسرویسها را در بر میگیرد. پیشتر در مطلب زیر از مجله فرادرس ۱۷ مورد از کاربردهای زبان برنامه نویسی PHP مورد بررسی قرار گرفته است.
جمعبندی
شناخت توابع و توانایی کار با آنها یک امر ضروری برای هر توسعهدهندهای است. استفاده از توابع موجب میشود تا کد نوشته شده خواناتر و خلاصهتر شود. همچنین، توابع روشی استاندارد برای «برنامه نویسی ماژولار» (Modular Programming) را پیشنهاد میکنند که منجر به قابلیت استفاده مجدد کد میشوند. خوشبختانه تمام زبانهای برنامه نویسی از مفهوم تابع پشتیبانی میکنند و بسیاری از آنها گنجینه کاملی از توابع داخلی پرکاربرد را نیز در اختیار برنامهنویس قرار میدهند. در این نوشته سعی شد تا ضمن بیان اهمیت توابع در زبان برنامه نویسی PHP و نحوه تعریف و فراخوانی آنها فهرست کاملی از توابع داخلی موجود در این زبان معرفی شوند.
در مطلب فوق از مجله فرادرس توابع PHP به تفکیک حوزه کاربردشان معرفی شدند. به عنوان مثال، توابع ریاضی، توابع کار با رشتهها، توابع مربوط به آرایهها، توابع کار با پوشهها و سایر موارد به طور کامل همراه با مثال مورد بررسی قرار گرفتند. در انتهای مطلب نیز به تعدادی از متداولترین سوالاتی پاسخ داده شد که در طول متن کمتر به آنها اشاره شده بود.