لغات البرمجة

التوابع في لغة php

التوابع في لغة php
التوابع في لغة php

التوابع في لغة php – تعد التوابع من البنى المهمة في لغة php، لأنها تقدم وظيفة محددة ومخصصة يقوم بها الموقع بشكل مستقل عن التنفيذ الأساسي. وتفيد التوابع في لغة php بإعطاء نسق تنفيذي سريع وتخفيض بعدد الأسطر البرمجية في الكود الأساسي. وللتعرف على المزيد حول هذا الموضوع تابع معي هذا المقال.

ما هي التوابع في php

التوابع في لغة php

التوابع في لغة php

أثناء عمل المواقع الكبيرة التي نراها عبر الإنترنت، وفي حال أردنا تسجيل الدخول في واحد منها عبر الضغط على زر تسجيل الدخول. نلاحظ أن الموقع يبدأ بمعالجة طلبك لفترة قصيرة من الوقت.

إن فترة المعالجة هذه توضح تدل على أنك طلب وظيفة معينة من الموقع. هذه الوظيفة مسؤولة عن توجيهك لصفحة تسجيل الدخول. إذا تصبح التوابع في لغة php عبارة عن وظيفة محددة يقوم بها الموقع ويتم برمجته على القيام بها من قبل المبرمج بهدف تقديم خدمة للمستخدم.

وهناك أنواع عدة من الوظائف بالعربية أو function بالإنكليزية، وليس بالضرورة أن تقدم للمستخدمين وحسب. بل ويمكن أن تقدم لمدير الموقع كالإحصائيات والرواتب المقطوعة وللمبرمجين الآخرين مثل أدوات البحث وتسريع الموقع.

كما وتوجد ثلاث أنواع رئيسية من الوظائف (function) في لغة php سنقوم بتوضيحها في هذا المقال. منوهين إلى أن اسم تابع أو وظيفة أو function يشير لذات المفهوم.

التوابع في php

التوابع في php

البنية العامة للتوابع في php

حتى نتمكن من التعريف عن تابع ما نحتاج للكلمة المفتاحية مع الأقواس (function(){}) ويليها الاسم الخاص بالتابع. والاسم الخاص بالتابع يفيد في استدعائه ضمن أي جزء داخل الكود. ومن أهم قواعد تسمية التوابع نذكر.

  • لا يحوي على فراغات.
  • لا يحري على الرموز الخاصة (-@#$%^) باستثناء الرمز (_).
  • الأحرف العربية ممنوعة.
  • لا يجب أن يبدأ اسم التابع بالأرقام.

ولتسهيل عملية تسمية التوابع نقوم باختيار اسم مناسب لوظيفة التابع الأساسية. فلو كان تابع مهتم بعملية تسجيل الدخول فإننا نسميه register. وبداخل الأقواس المنحنية نضع الوسطاء.

والوسطاء هم المتحولات أو المصفوفات أو الأغراض التي يحتاجها التابع لإكمال عمله. وفي حال لم تكن تعرف ماذا يعني متحول في لغة php يمكنك قراءة المقال التالي عن المتغيرات وأنواع البيانات في php. أما الأقواس المتعرجة فتحتوي على التعليمات البرمجية التي توضح وظيفة التابع بشكل صريح. مع العلم أن التابع سيتعامل مع المعلومات الخاصة بموقعك عن طريق الوسطاء الممررة له فقط وسيعيد قيمة معينة نحددها وفقاً لعمل التابع.

البنية العامة للتوابع في php

البنية العامة للتوابع في php

التوابع من نوع void

هذا هو النوع الأول من التوابع في لغة php ويتميز هذا النوع بأنه لا يعيد أي قيمة عند استدعائه. أي عندما نقوم بطلب هذا التابع فإنه سيقوم بتنفيذ التعليمات الموجودة ضمن جسمه ويستخدم بكثرة من أجل الطباعة على الشاشة.

وسنوضح فكرة هذا النوع من التوابع في لغة php عن طريق المثال التالي. حيث أننا سنعرف تابع باسم print_1 سيقوم بطباعة العبارة (مرحبا بكم في قناتنا عربي تك) كما هو موضح بالشكل التالي. منوهين إلى أن هذا النوع من التوابع لا يحتاج وسطاء لأنه سيقوم بعملية طباعة عبارة يحددها المبرمج.

التوابع من نوع void

التوابع من نوع void

وسنلاحظ أنه عند تنفيذ الكود السابق لن تظهر أي نتيجة في المتصفح، والسبب يعود لأننا قمنا بتعريف تابع دون استدعائه. وبالتالي لن يقوم بتنفيذ الجزء المسؤول عن الطباعة في الكود السابق حتى يتم استدعاؤه.

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

وجدير بالذكر أن التوابع في لغة php تمتلك ديناميكية خاصة، حيث يمكن استدعاء التوابع بعد الضغط على زر ما من نوع submit أو عند الضغط على رابط ما أو حتى عند تحقق شرط معين. والصورة التالية ستوضح عملية استدعاء التوابع بدون أي قيود.

استدعاء التوابع بدون أي قيود

استدعاء التوابع بدون أي قيود

التوابع مع الوسطاء

هذا هو النوع الثاني من التوابع في لغة php ويسمى بالإنكليزية function with parameter. حيث يجب علينا تمرير بيانات للتابع حتى يتمكن من إنجاز مهمته بنجاح. وسنطبق نفس المثال السابق المختص بعملية الطباعة ولكنه سيقوم بطباعة قيم مسنده له عند الاستدعاء.

أي أننا سنعرف عن تابع بوسيطين (متحولين) ونريد أن يطبعهما، والمتحولين (الوسيطين) يدلان على الاسم والعمر. بالنسبة لعملية إسناد القيم، فإنها ستتم خلال عملية استدعاء التوابع. مع العلم أن الوسطاء الممررة للتابع غير محددة بقيمة محددة دون أخرى وإنما يمكن أن تأخذ مجموعة من القيم. والمثال التالي يوضح الكلام السابق.

التوابع مع الوسطاء

التوابع مع الوسطاء

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

تطبيق عملية الاستدعاء

تطبيق عملية الاستدعاء

التوابع من نوع return

هذا هو النوع الأخير من التوابع في لغة php ويتميز عن الأنواع السابقة في أنه يجب تحديد القيمة التي يجب أن تتم إعادتها. ونقصد بالقيمة هنا المتحول الذي يخزن نتيجة تنفيذ التابع.

ويحتاج التابع السابق إلى الكلمة المحجوزة return في نهاية التعليمات المسؤولة عن الوظيفة الخاصة به. مع المحافظة على ديناميكية البارامترات الممررة له كما هو الحال في النوع الثاني.

وفي المثال التالي سنقوم بتعريف تابع باسم getText بدون وسطاء كما في الحالة الأولى. وسنقوم بتخزين العبارة (مرحبا بك في موقع عربي تك) في متحول ضمن جسم التابع. وسنقوم أخيراً بإعادة المتحول السابق.

كما وجب التنويه إلى أن المتحول المعرف داخل جسم التابع يعتبر متحول محلي لا يمكن استخدامه خارج جسم التابع أبداً. فهو معرف ضمن جسمه ويمكن استخدامه بحرية مطلقة داخل التابع.

التوابع من نوع return

التوابع من نوع return

سنلاحظ أن الكود السابق لا يعمل على الرغم من كتابة التابع بشكل صحيح. وهنا الخطأ منطقي وليس خطأ متعلق بكيفية كتابة التوابع في لغة php. وتفسير ما سبق أن التابع سيعيد العبارة مخزنة في المتحول $k.

ولكن عند استدعاء التابع فلن يقوم بطباعة أي شيء ولن يقوم بعمل أي شيء. وهنا يكون الاستدعاء بدون فائدة. ولتصحيح الخطأ السابق سنقوم بتخزين عملية استدعاء التابع في متحول جديد باسم $result، وعندها سنقوم بطباعته عندها سيعمل بشكل سليم. منوهين إلى ضرورة تعديل اسم التابع لأن المتصفح سيقوم بحفظ المعلومات السابقة عن الخطأ ولن يقوم بقراءة التابع من جديد.

شرح التوابع من نوع return

شرح التوابع من نوع return

كما يمكن استخدام النوع السابق داخل جملة شرطية ما، وعند تحقق الشرط بنجاح ستتم طباعة عبارة (تم التنفيذ بنجاح). وفي مثالنا السابق سنقوم بالتحقق من أن القيمة المعادة مطابقة للقيمة الموجودة في جسم التابع كما في الشكل التالي.

القيمة المعادة مطابقة للقيمة الموجودة

القيمة المعادة مطابقة للقيمة الموجودة

وفي ختام مقالة اليوم عن التوابع في لغة php، نلاحظ مدى أهمية هذه البنية في برمجة المواقع المختلفة. كما أصبح بإمكاننا توسيع المفهوم الموضح في المقال السابق ليصل إلى أي وظيفة خاصة في موقع كامل مثل التحقق من الهوية أو إنشاء حساب أو طلب شراء منتج. أتمنى أن يعجبكم المقال ولا تنسوا متابعة موقعنا عربي تك للمزيد من الشروحات المختلفة.

إقرأ أيضاً: الحلقات التكرارية في php

أكتب تعليقك ورأيك