Function Return vs Print مع أمثلة بلغة PHP

تعرف على الفرق بين ال Return وال Print داخل ال Function ومتى تستخدم كلا منهم
قبل الشرح والدخول في أي مقارنة سوف نقوم بعمل مثال على الطريقتين ب Function بسيطة جدا بلغة PHP مثلا والفكرة عبارة عن Function تقوم بطباعة رسالة بسيطة جدا.
هذه ال Function بعد تشغيلها لن تطبق أي شيء لأنك قمت بتشغيلها فقط ولكن لم تقم بطباعتها ليخرج لك الرسالة وحتى تستطيع طباعة محتوى الرسالة تقوم بإضافة echo لتطبع محتوى ال Function
لماذا أقوم بإرجاع القيم بدون طباعتها ؟ هذا أهم سؤال وهو محتوى المقال تخيل معي المثال السابق أنك قمت بعمل Function تقوم بجلب إسمك ثم قمت بتخزين هذه ال Function داخل متغير لتستخدمها في كل مكان ماذا سوف يحدث ؟ شاهد المثال التالي
الآن لا توجد أي مشكلة قمنا بتخزين محتوى ال Function داخل متغير وقمنا بإستخدامه في أكثر من مكان تخيل معي الآن لو طبقنا نفس المثال بواسطة echo وطبعنا القيمة داخل ال Function بدلا من إستخدام return
هنا المشكلة أن أي وجود لل Function سواء تخزينها في متغير أو إستخدامها داخل If Condition أو أي شيء سوف يتم طباعة محتواها مباشرة وهذا غير مقبول لأنك لا تحتاج لطباعة المحتوى غير عندما تحتاج إليه فقط علاوة على أن ال return تنهي عمل ال Function ويمكنك بعدها إستدعائها وطباعة قيمتها وقتما تريد, هيا بنا نأخذ مثال آخر
في ال Code السابق قمنا بعمل Function main_function ووضعنا فيها اسم osama وإستخدمنا ال echo لطباعته مباشرة ولم نستخدم return وفي ال Function الثانية other_function قمنا بإستخدام return لنأخذ قيمة ال Function الأولى ونستخدم Method في لغة PHP اسمها ucfirst تقوم بتحويل أول حرف ل Capital Letter وسوف نلاحظ مشكلتين, الاولى انه بمجرد إستخدامك لل Function الاولى داخل الثانية تم طباعة الإسم وهذا غير مقبول لأني لم أطلب منه طباعة الإسم أنا أحتاج فقط لعمل عملية معينة وسوف أقوم بطباعة القيمة وقتها أشاء, المشكلة الثانية أن ال Method لم تعمل لأن ال Function الأولى لا تقوم بإرجاع القيمة للتعامل معها بل تقوم بطباعتها مباشرة وهذه مشكلة أخرى والآن دعنا نصلح العملية ونكتب الكود بشكل سليم لترى النتيجة
ما الذي حدث هنا ؟ أنت قمت بعمل ال Function الاولى main_function وهي تقوم بإرجاع القيمة osama والآن قمنا بعمل ال Function الثانية other_function والتي تأخذ قيمة ال Function الاولى وتنفذ عليها ال Method المسماه ucfirst وقامت بتحويل اول حرف ل Capital Letter والقيمة مخزنة في ال Function والآن ال Function الخاصة بك other_function جاهزة لإرجاء الاسم بعد تحويل أول حرف ل Capital ويمكنك الآن طباعة ال Function لترى النتيجة

سؤال مهم جدا هل يجب دائما طباعة محتوى ال Function

لا فهناك الكثير من ال Function التي تقوم بعمل شيء في المحتاوى أو تنفيذ عملية معينة ولا يشترط أن تطبع النتيجة فعلى سبيل المثال Function تقوم بتحديث البيانات في قاعدة البيانات أو ترسل رسالة معينة ولا يشترط أن تخرج نتيجة لك.

الكلمات الدلالية

مشاركة الصفحة

إعلانات جوجل