المعاملات والقيم المرجعة

في الدرس السابق أنشأنا دوال بسيطة. الآن نريد مستوى أقوى: دوال تستقبل بيانات مختلفة وتعيد نتائج نستفيد منها في أي مكان داخل البرنامج.

ما هي Parameters و Arguments في PHP؟

عندما تكتب الدالة، المتغيرات داخل تعريفها تسمى Parameters. وعندما تستدعي الدالة وترسل قيمًا فعلية، هذه القيم تسمى Arguments.

مثال 1: دالة تستقبل قيمة واحدة

الكود:

<?php
function welcomeUser($name) {
    echo "مرحباً يا $name <br>";
}

welcomeUser("أحمد");
welcomeUser("سارة");
?>

ما يظهر في المتصفح:

مرحباً يا أحمد
مرحباً يا سارة

شرح الكود: $name هو Parameter داخل الدالة. القيم "أحمد" و"سارة" هي Arguments أرسلناها وقت الاستدعاء. نفس الدالة نفذت مرتين بسلوك مختلف حسب القيمة المرسلة.

مثال 2: دالة تستقبل أكثر من معامل

الكود:

<?php
function printFullName($firstName, $lastName) {
    echo "الاسم الكامل: $firstName $lastName <br>";
}

printFullName("Rachid", "Bennani");
printFullName("Sara", "Amrani");
?>

ما يظهر في المتصفح:

الاسم الكامل: Rachid Bennani
الاسم الكامل: Sara Amrani

شرح الكود: الدالة فيها Parameterين، لذلك عند الاستدعاء يجب إرسال قيمتين بنفس الترتيب. الترتيب مهم لأن أول قيمة ترتبط بـ $firstName والثانية بـ $lastName.

ما معنى return في PHP؟

بدل أن تطبع الدالة النتيجة مباشرة بـ echo، يمكنها إرجاع قيمة بـ return. هذه القيمة تستطيع تخزينها، جمعها، أو إرسالها لدالة أخرى.

مثال 3: دالة تعيد قيمة رقمية

الكود:

<?php
function sum($x, $y) {
    $z = $x + $y;
    return $z;
}

$result = sum(5, 10);
echo "المجموع هو: $result";
?>

ما يظهر في المتصفح:

المجموع هو: 15

شرح الكود: الدالة sum لا تطبع داخلها، بل تعيد الناتج. بعدها خزنا الناتج في $result ثم طبعناه خارج الدالة.

مثال 4: return مع إعادة استخدام حقيقية

الكود:

<?php
function calcTax($price) {
    return $price * 0.2;
}

$phonePrice = 1000;
$tax = calcTax($phonePrice);
$finalPrice = $phonePrice + $tax;

echo "السعر قبل الضريبة: $phonePrice <br>";
echo "الضريبة: $tax <br>";
echo "السعر النهائي: $finalPrice";
?>

ما يظهر في المتصفح:

السعر قبل الضريبة: 1000
الضريبة: 200
السعر النهائي: 1200

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

echo vs return داخل الدالة

الحالة echo return
ما تفعله تطبع مباشرة تعيد قيمة
المرونة أقل مرونة أكثر مرونة
الاستخدام الأفضل رسائل مباشرة وسريعة حسابات ومنطق قابل لإعادة الاستخدام

أخطاء شائعة في المعاملات و return

  • نسيان إرسال عدد القيم المطلوبة عند الاستدعاء.
  • الخلط بين Parameter و Argument.
  • استخدام echo داخل دالة حسابية ثم محاولة استعمال الناتج كقيمة.
  • نسيان كلمة return رغم الحاجة لإرجاع نتيجة.

تمرين سريع

  1. أنشئ دالة multiply تستقبل رقمين وتعيد حاصل الضرب.
  2. استدعها بثلاث قيم مختلفة (مثلاً 2 و3، 5 و4، 10 و0).
  3. اطبع النتائج في شكل: "ناتج العملية = ...".

الأسئلة الشائعة — FAQ

ما الفرق بين Parameter و Argument؟

Parameter داخل تعريف الدالة، وArgument هي القيمة المرسلة وقت الاستدعاء.

ما الفرق بين echo و return؟

echo يطبع مباشرة، return يعيد قيمة لاستخدامها لاحقاً.

هل يمكن للدالة استقبال أكثر من معامل؟

نعم، ويمكنك تمرير عدة قيم حسب تعريف الدالة.

لماذا return مهمة؟

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

ممتاز! الآن فهمت كيف تتحول الدوال من أوامر بسيطة إلى أدوات ذكية تستقبل بيانات وتعيد نتائج مفيدة.
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن