لاحظ أننا قمنا بإدراج القيمة مباشرة للدالة من غير وضعها في متغيرات .
2 - تمرير القيمه عن طريق المرجع (passing by reference)
نقصد بهذا أننا نقوم بوضع القمية في متغير أولا ثم نضع هذا المتغير في الدالة لكي يتم اجراء العمليات عليه مثال :
Function alfars ($f)
{
$f=$f+$f;
return ;
}
$r =1000;
echo alfars($r);
?>
اعداد قيمة افتراضيه للدالة
تستطيع أن تجعل الـPHP4 يقوم بإدراج قيمة إفتراضية عند عدم تمرير متغيرات إليه
مثال :
Function alfars ($f=40)
{
$f=$f+$f;
return ;
}
echo alfars();
?>
إذا لم يتم إعطاء قيمة للدالة فإنها ستفترض أن القيمة هي 40 مباشرة .
أما إذا تم تمرير قيمة أو متغير فإنه سيتم العمل بالقيمة التي تم تمريرها بدلاً من القيمة الإفتراضية
مثال :
Function alfars ($f=40)
{
$f=$f+$f;
return ;
}
echo alfars(100);
?>
مدي المتغيرات (variable scope)
هناك متغيرات محلية (local) ومتغيرات عامة (global) ، نقصد بالمتغيرات المحلية التي تكون في داخل الدالة ونقصد بالعامة التي تكون في كود الـPHP بشكل عام
مثال
//هذا متغير عام
$r= “salem”;
function ala($s)
{
//هذا متغير محلى
$s = “progrramer”;
}
echo $r ;
ala($s);
echo $s;
?>
مثال :
//هذا متغير عام
$r= “salem”;
function ala($s)
{
//هذا متغير محلى
$s = “progrramer”;
}
echo $r ;
$s=10;
echo $s;
?>
في المثال الأول استطعنا طباعة المتغير $r ولم نسطتع طباعة المتغير $s لأنه محلى (لايتم تنفيذه الا داخل الدالة ) وعندما نريد طباعته فإننا يجب أن نطبع ناتج الدالة لكي نحصل عليه (أي أننا لانستطيع طباعته بشكل مباشر )
مثال :
//هذا متغير عام
$r = “salem”;
function ala($s)
{
//هذا متغير محلى
$s = “programmer”;
}
//استطعنا طباعته بشكل مباشر
echo $r ;
ala($s);
//يجب استخدام الداله لكي يتم طباعته
echo ala($s);
?>
لاحظ أننا حتي لو قمنا بعملية طباعة المتغير من نفس الدالة فالناتج يكون مختلف لأن لكل متغير عالمه الخاص به
لكي نقوم بجعل المتغير الذي بداخل الدالة متغيراً عاماً فيمكننا ذلك بإحدي الطريقيتن التاليتين :
الطريقة الأولى :
function ala($y)
{
echo $y. “
”;
global $s;
$s = "programmer";
return ;
}
$f =10;
ala($f);
echo $s;
?>
لاحظ أننا عندما استخدمنا global في داخل الدالة لكي يتم تعريف أن المتغير متغير عام وبعدما قمنا باستخدام الدالة قامت بطباعة المتغير المراد طباعته ومن ثم بعد ذلك قامت بتعريف متغير جديد ($s) وهذا المتغير متغير عام لأننا وضعنا قبله الكلمة global فاستطعنا طباعته بكل سهوله .
الطريقة الثانيه : هي أن نستخدم المصفوفة $GLOBALS التي تستخدم في PHP لتعريف المتغيرات العامة أيضا
مثال :
function ala($y)
{
echo $y. “
”;
$GLOBALS[“s”] ;
$s = "programmer";
return ;
}
$f =10;
ala($f);
echo $s;
?>
المتغيرات المستقره (static variable)
اقصد بالمتغيرات المستقرة هي التي تكون قيمتها ثابتة
مثال :
Function addfares($y)
{
$y;
$y=$y+1 ;
return $y;
}
echo addfares($y);
echo addfares($y);
echo addfares($y);
echo addfares($y);
?>
Function addfares($y)
{
static $y;
$y=$y+1 ;
return $y;
}
echo addfares($y);
echo addfares($y);
echo addfares($y);
echo addfares($y);
?>
لاحظ عندما عرفنا المتغير بأنه static فانه يحتفظ بقيمته حتي لو انتهت الدالة .
دوال متداخلة
يمكننا عمل تعشيش للدوال مثلما كنا نفعل مع بناء القرارات والتكرارات
مثال :
Function sum($sa)
{
$sa=$sa-1;
function goadd ($r)
{
$r = $r+$r;
return $r;
}
$sa= goadd ($sa);
return $sa;
}
echo sum (15);
?>
في مثالنا هذا لدينا دالتين الدالة الأولى هي sum والدالة الثانية هي goadd
وظيفة الدالة الأولى هي أن تقوم بالإنقاص من العدد الذي يمرر إليها واحد ثم تقوم بتطبيق دالة داخلية فيها هي goadd تقوم بزيادة العدد على نفسه .. ومن ثم قمنا بنداء الدالة الأولى (لأنها هي الاساس التي يوجد به الدوال الداخلية ) وطباعة قيمتها .
اشتمال الملفات (include files)
قد يكون لديك في برنامجك متغير متكرر في أكثر من صفحة أو رسالة خطأ معينة أو تريد إدرج نص كبير الحجم في صفحات متعددة
هنا يمكنك اشتمال ملفات في داخل ملفات الـPHP . هذه الملفات قد تحتوي على نصوص أو كود html أو كود PHP .
إن الصيغة التي تستخدمها لاشتمال الملفات هي :
Include (filename);
مثال :
قم بفتح ملف نصي واكتب فيه ماتشاء ثم احفظه باسم a.txt
قم بانشاء ملف php واكتب فيه ومن ثم احفظه باسم b.php
Include (“a.txt”);
?>
انقلهما الى مجلد السيرفر .. شغل ملف الـ b.php وانظر النتيجة .
يمكنك أن تقوم بإنشاء ملف PHP وتحتفظ فيه بجميع الـfunction المطلوبة لبرنامجك وعند إرادتك لاستخدام أي واحدة منها تقوم فقط باشتمال الملف ومن ثم استدعاءها .
داله تلوين الكود
هل رايت مواقع تقوم بتلوين الكود بشكل مذهل مثل موقع zend ؟.... الأمر بسيط كل ماعليك أولا
قم بوضع الكود في ملف نصي وسمه باي اسم (مثلا file.txt ) وبعد ذلك قم باستخدام الدالة
Show_source
مثال :
show_source ("file.txt");
?>