آموزش دستور return در php

تاریخ: 09 فروردین 1400

دستور return برای پایان دادن به ادامه ی کدها و برگرداندن مقدار استفاده می شود.

مثلا اگر بخواهیم تابعی را در یک نقطه مشخص متوقف کنیم و یک مقدار برگردانیم، در آن نقطه از کلمه return استفاده می کنیم.

return یک language construct است

دستور return جزو language construct ها می باشد. پس پاس دادن آرگومان به آن می تواند با پرانتز یا بدون پرانتز انجام شود:

 
function first(){
    return 1;
}
function second(){
    return(2);
}
$x = first();
$y = second();
echo $x, $y;
//output: 12

 

نکته: اگر هیچ آرگومانی برای پاس دادن نداریم، نباید از پرانتز خالی استفاده کنیم وگرنه خطای parse دریافت خواهیم کرد.

استفاده از return در توابع php

اصلی ترین استفاده return در توابع می باشد.

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

فرض کنیم تابعی داریم که یک آرایه از اعداد صحیح را دریافت می کند و اعداد زوج را به ما بر می گرداند. در اینصورت لازم است ابتدا اعداد زوج را سلکت کرده و سپس بر گردانیم:

 
$x = [1, 2, 3, 4, 5, 6, 7, 8, 9];
function justEven($x){
    $even = [];
    foreach($x as $value) {
        if($value % 2 == 0){
            $even[] = $value;
        }
    }
    return $even;
}
$result = justEven($x);
print_r($result);
//output: Array (2, 4, 6, 8)

 

دقت کنید که دستور return فقط می تواند یک مقدار بر گرداند. اگر قصد داریم چند مقدار برگردانیم، باید از آرایه استفاده کنیم.

نکته: اگر دستور return هیچ مقداری نداشته باشد، null بر می گرداند.

متوقف کردن تابع با استفاده از دستور return

دستور return هر جا درون تابع استفاده شود، تابع در همان جا متوقف می شود. مثلا فرض کنیم که نیاز داریم اگر درون تابع یک شرط مشخص برقرار بود، تابع در همان نقطه متوقف شود:

 
function getNumber($x) {
    if($x < 2)
        return;
    echo $x;
}
getNumber(2); //output: 2
getNumber(1); //output: null

 

تفاوت echo کردن مقدار در تابع با return کردن آن

هنگامی که ما یک مقدار را در تابع echo می کنیم، آن مقدار صرفا چاپ می شود و نمی توانیم آن را در یک متغیر بریزیم. چون هیچ مقداری برگردانده نمی شود.

ولی زمانی که مقداری را return می کنیم، آن مقدار قابل استفاده است و می توانیم در یک متغیر بریزیم:

 
function first($x) {
    echo $x;
}
function second($x) {
    echo $x;
    return $x;
}
$y = first(2);
print($y); //output: 2 null

$z = second(3);
print($z); //output: 33

 

دستور return اگر به صورت global استفاده شود، اسکریپت در همان نقطه متوقف می شود و ادامه ی کدها اجرا نخواهد شد.

 

 

 

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

  • مهسا گفت:

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

    • بیاوردپرس گفت:

      باید return کنید چون break برای ساختارهای تکرار نظیر for و switch می باشد و نمیتونید مستقیما داخل تابع استفاده کنید.

  • پریسا گفت:

    با سلام
    برای فاکتوریل گرفتن اعضای یک ارایه درphp باید چه دستوری رو نوشت
    اعضای ارایه رو گرفتم ولی میخوام هر عدد جداگانه فاکتوریلش گرفته بشه نمیتونم

  • طراحی افزونه وردپرس