الكثير منا يواجه احياناً ذكر جملة ( PHP LANGUAGE CONSTRUCTS ) فما هي وما الفرق بينها وبين الدوال ( PHP FUNCTIONS ) ؟
كما نعلم أن الدوال هي مجموعة من الأكواد تندرج تحت اسم معين وهو اسم الدالة ولا يمكن تنفيذ هذا الكود إلا باستدعاء الدالة. وهناك مجموعة من الدوال المدمجة Built-In في ( PHP ).
وصيغة كتابة الدوال هي
<?php function name($argument){ // كتابة الأكواد هنا } name($argument);// استدعاء الدالة ?>اما الـ ( PHP LANGUAGE CONSTRUCTS ) هي الأخري تعبيرات مدمجة في ( PHP ) ولكن تختلف بعض الاختلافات عن الدوال ولكن قبل أن نتحدث عن هذه الاختلافات يجب أن نفهم طبيعة الـ ( PHP LANGUAGE CONSTRUCTS ).
بشكل مبسط تعتبر الـ ( PHP LANGUAGE CONSTRUCTS ) هي أساسات اللغة (ليست أساسيات). فكما نعلم أن كل لغة برمجة لها صيغة Syntax في كتابة الأكواد وأيضا تحتوي على مجموعة من الكلمات التي لها مدلولات أو وظائف ثابتة. هذه الكلمات يفهمها المحلل Parser الخاص بلغة البرمجة بشكل مباشر فهو يعرفها مسبقاً ولا يحتاج لمعرفة الوظيفة التي تقوم بها هذه الكلمة.
ولكن أيضاً الدوال المدمجة Built-In ( PHP FUNCTIONS ) هي الأخرى معروفة لدى المحلل فما الفرق اذن؟
لكي نفهم هذا بشكل مبسط يجب ان نبتعد قليلا عن البرمجة!, تخيل انك تمتلك شركة انشاءات وطلبت منك الحكومة بناء مدينة سكنية, وتعتمد الحكومة في البناء علي مباني جاهزة (غرفة نوم جاهزة للتركيب – حمام جاهز للتركيب- وهكذا) وكل المطلوب منك هو بناء المدينة باستخدام هذه المباني الجاهزة , مع العلم ان كل مبني بحد ذاته يمكن الاستفادة منه منفردا, بمعنى أنه يمكن وضع غرفة نوم جاهزة لحارس مدرسة مثلاً.
عند الانتهاء من بناء المدينة يأتي مسؤل من الحكومة لاستلام المشروع منك (استشاري). وبالطبع عندما يري الاستشاري أن المباني الجاهزة مستخدمة وبالمواصفات القياسية يقوم بتوقيع الاستلام دون تفكيراً كثيراً فهو يعلم هذه البنايات واشكالها المعروفة, ولكن اثناء فحصه للانشاءات وجد بناية شكلها الخارجي غير مألوف له ولكنك تؤكد له أن هذا البناء تم بناءه باستخدام المباني الجاهزة أيضاً وبالمواصفات القياسية. ففي هذه الحالة سيضطر الاستشاري للدخول داخل المبني للتأكد من أن كل كبيرة وصغيرة مبنية بالمواصفات القياسية وبمجرد تأكده يقوم بالاستلام.
ومن هنا يمكننا النظر للبرنامج كالتالي
1- لغة البرمجة هي الحكومة
2- المحلل Parser هو الاستشاري
3- اساسات اللغة ( PHP LANGUAGE CONSTRUCTS ) هي المباني الجاهزة.
4- الدوال ( PHP ( PHP FUNCTIONS ) ) هي المباني الغير جاهزة (تقوم ببناءها خصيصاً لغرض معين باستخدام الاساسات)
من هنا يتضح أن الدوال ( PHP FUNCTIONS ) تعتمد في تكوينها على اساسات اللغة ( PHP LANGUAGE CONSTRUCTS ).
أنظر الكود التالي
<?php $x=2+3; ?>في الكود السابق تعتبر علامتي الـ +, = هي PHP LANGUAGE CONSTRUCTS فمعروف ما هما وما وظيفتيهما أما في الكود التالي
<?php echo 2+3; ?>تظهر كلمة echo المسؤلة عن طباعة قيمة معينة وبالرغم من أنها في حد ذاتها تقوم بوظيفة وتعمل عمل الدالة ولكن لايشترط ان تنطبق عليها خصائص الدالة ويفهمها المحلل Parser كما يفهم علامتي +, =
من هنا يمكننا القول بأن المحلل يقوم بالتعامل مع الـ PHP LANGUAGE CONSTRUCTS بشكل مباشر, أما الدوال ( PHP FUNCTIONS ) يقوم أولاً بتفكيكها لمجموعة من الـ PHP LANGUAGE CONSTRUCTS حتي يتأكد من صحة الصيغة التي تم كتابة الدالة بها وهل تتوافق مع الصيغ المعرفة لكتابة اللغة نفسها.
أيضاً من الفروقات بينهما , أن الـ PHP LANGUAGE CONSTRUCTS لا يشترط كتابة الأقواس كما هو الحال في الدوال ( PHP FUNCTIONS ) كما يظهر في الكود التالي
<?php echo ('Today is a beautiful day'); echo 'Today is a beautiful day'; $today = 'Today is a beautiful day'; echo $today; die('You are not authorized to access this content'); die; ?>ومن الـ PHP LANGUAGE CONSTRUCTS
1- () echo
2- () print
3- () isset
4- () die
5- () empty
6- () include
الفرق بين الدوال ( PHP FUNCTIONS ) والـ PHP LANGUAGE CONSTRUCTS1- الـ PHP LANGUAGE CONSTRUCTS أسرع قليلاً من الدوال ما دام المحلل لايحتاج لترجمتها لصيغة اللغة على عكس الدوال
2- يتم تجاوز عملية مراجعة الأخطاء ( PHP ERROR HANDLING ) في حالة الـ PHP LANGUAGE CONSTRUCTS
3- يمكن تعطيل Disable عمل الدوال على عكس الـ PHP LANGUAGE CONSTRUCTS
4- لايمكن استخدام الـ PHP LANGUAGE CONSTRUCTS كدوال استرجاع ( PHP CALLBACK FUNCTIONS )
5- يمكنك إضافة دوال جديدة ولكن لايمكنك اضافة Language construct