الفرق بين المراجعتين ل"PHP/return"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - 'PHP\/Function\/([^|]*)' ب'PHP/$1')
ط (نقل عبد اللطيف ايمش صفحة PHP/Control Structures/return إلى PHP/return: إعادة هيكلة التوثيق)
 
(لا فرق)

المراجعة الحالية بتاريخ 03:49، 4 أبريل 2018

(PHP 4, PHP 5, PHP 7)

تعيد تنفيذ البرنامج إلى الوحدة التي قامت بالاستدعاء، وسيستمر التنفيذ إلى التعبير الذي يلي تعبير الاستدعاء.

إذا استدعيت عبارة return داخل الدالة فإنّها ستنهي تنفيذ الدالة على الفور وتعيد معاملها كقيمة لاستدعاء الدالة. تنهي return أيضًا تنفيذ عبارة eval()‎ أو ملف الشيفرة.

إن استدعيت عبارة return من النطاق العام (global scope) فإنها تنهي عملية تنفيذ ذلك الملف. وإن كان ملف الشيفرة مضمنًا (included) أو مطلوبًا (required)، فإن التحكّم يعود إلى الملف المستدعي مرة أخرى. إضافة إلى ذلك، إن كان ملف الشيفرة الحالية مضمنًا فإن القيمة التي تأخذها return ستعاد كقيمةٍ للتعبير include. يؤدي استدعاء عبارة return في ملف الشيفرة الرئيسي إلى إنهاء تنفيذ تلك الشيفرة. إن سُمّي ملف الشيفرة الحالية بواسطة الخيارين auto_prepend_file أو auto_append_file في ملف الإعدادات php.ini، فإن تنفيذ تلك الشيفرة سيتوقف أيضًا.

لمزيد من المعلومات، راجع إرجاع القيم.

ملاحظة: لمّا كانت عبارة return واحدةً من البنى التابعة للغة وليست دالةً، فإن الأقواس المحيطة بالمعاملات ليست مطلوبة ومن الشائع عدم استخدامها، بل يجدر القيام بذلك لأنّ الشيفرة في هذه الحالة ستؤدي عملًا أقل.

ملاحظة: إن لم تتوافر أي معاملات لعبارة return، فيجب حذف الأقواس وستعاد القيمة NULL. يؤدي استدعاء عبارة return مع الأقواس ودون أي معاملات إلى إطلاق خطأ إعرابي (parse error).

ملاحظة: لا يجوز إحاطة المتغير الذي ترغب في إعادته بالأقواس عندما يكون الإرجاع بالمرجعية، لأن هذا لن يعمل مطلقًا. يمكن فقط إرجاع المتغيرات بالمرجعية وليس إرجاع نتيجة العبارة. فلو استخدمت العبارة return ($a);‎ فإنك في هذه الحالة لا ترجع متغيرًا ولكن ترجع نتيجة التعبير (‎$a) (وهي بالتأكيد قيمة المتغير ‎$a).

مصادر