الآن افترض أنك تقوم بإستدعاء دالة بإسم myfunc وهذه الدالة ليس لها تعريف كالتالي :
<?php
|
فإن المترجم سيصدر خطأ لعدم وجود تعريف للدالة ...
الآن لو قمنا بكتابة مايلي :
<?php
|
فالآن لو ..
<?php
|
فإن الأمور ستسير على مايرام والسبب أن مترجم php استطاع التعرف على الدالة من خلال التعريف الذي ذكرناه ..
الآن لاحظ مايلي :
<?php
|
هذا مانقصد به تعريف دالة داخل دالة فلقد عرفنا دالة بإسم foo وعرفنا بداخلها دالة بإسم bar ..
ولكن هنا مشكلة للتوضيح ..
الآن مترجم php يعلم فقط بوجود الدالة foo فقط أي لو كتبت ما يلي :
<?php
|
فإنه سيصدر خطأ يخبرك فيه أن الدالة bar غير معرفة !!!
إذا كيف أستخدم الدالة bar ؟
في حقيقة الآمر سيتم التعرف على الدالة bar في حال استدعيت الدالة foo فقط كالتالي :
<?php
|
الآن عندما نفذ مترجم php هذه الدالة فإنه وجد بداخلها تعريف لدالة أخرى وعندها سيتعرف على الدالةbar التي بداخل foo ويجعلها متاحة للإستخدام...
أي بكلام أخر لا تستطيع إستدعاء الدالة التي بالداخل(bar) حتى تستدعي الدالة التي تحتويها (foo)(الدالة التي بالخارج) ..
فالآن لو عملنا التالي ..
<?php
|
فإن الأمور ستسير على مايرام ...
وإليك المثال بالكامل ...
<?php
|
وأرجوا أن تكون الفكرة قد اتضحت ...
وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل ...
الكاتب عبدالله عيد


