هديل
22-03-2003, 04:02 AM
- لو كان لدينا شرط يتحقق من قيمة ما ، وبناء على هذه القيمة سيتم إدراج ملف سواء بـ require أو بـ include ، يفضّل هنـا أن يتم إستخدام الدالة include لأنها ستقلل الحمل على المستضيف بمنعى أنه لو كان لدينا الكود التالي :
Code ..
<?
if ($var == 1) {
include("file1.php");
} else {
include("file2.php");
?>
هنا سيقوم مترجم اللغة بتحميل أحد الملفين ومن ثم عرضه متى ما تحقق شرطه ، لكن لو كان لدينا المثـال السابق بإستخدام الدالة require فإن المترجم سيقوم بتحميل الملفين ، ومن ثم يقوم بعرض أحدهما متى ما تحقق الشرط ، وهذا الفرق البسيط في الحمل قد لا يكون هاماً لي ولك ، ولكنه مهم في تصميم مواقع كبيرة نسبياً تتأثر بالحمل الزائد أثناء تنفيذ الصفحة وبالتالي مع أجتماع هذا الحمل قد يشكل فرقاً آن ذاك ..
2- دالة الـ include يمكن أن نسترجع منها قيماً وتسندها إلى متغير آخر ( نجاح أو فشل مثلاً ) ، بينما دالة الـ require لا يمكنها القيـام بذلك ، ولتوضيح الفكرة قم بفتح ملف جديد وأعطه الإسم fp.inc ، واحفظ فيه ما يلي :
Code ..
<?
@$fp = fopen($name, $mode);
if (!$fp) {
echo "يوجد مشكلة في فتح الملف ..";
return 0;
} else {
return 1;
}
?>
وكذلك أفتح ملفاً جديداً وسمه main2.php واحفظ فيه ما يلي :
Code ..
<?
$name = "main.php";
$mode ="r";
$result = include("fp.inc");
if ($result == 1) { echo "تم الوصول الى الملف ..";}
?>
بإفتراض أنك قمت بتطبيق المثـال الأول ، وحفظت الملفين السابقين في نفس المجلد الذي يحتوي على ملف الـ main.php ، عند تنفيذك المثـال السـابق ( أقصد ملف الـ main2.php ) ستجد أن كلمة ( تم الوصول الى الملف ) قد ظهرت لك ، ما يهمني هنا سواء ظهرت نفس الجملة أو الجمل الأخرى ( يوجد مشكلة في فتح الملف ) أن الدالة include قد تفاعلت معنا وقمنا باسترجاع قيمة الشرط فيها والتي تتحكم فيها دالة return ، وقمنا بإسنـادها الى متغير ( في مثالنا كان المتغير هو result$ ) ، بينما دالة الـ require لا يمكن أن تفعل ذلك ، جرب ذلك بنفسك وغير دالة include في ملف الـ main2.php الى require ولن يتم طباعة شي سواء تمت العملية أو لو تتم .
بقلم : OneTo9
Code ..
<?
if ($var == 1) {
include("file1.php");
} else {
include("file2.php");
?>
هنا سيقوم مترجم اللغة بتحميل أحد الملفين ومن ثم عرضه متى ما تحقق شرطه ، لكن لو كان لدينا المثـال السابق بإستخدام الدالة require فإن المترجم سيقوم بتحميل الملفين ، ومن ثم يقوم بعرض أحدهما متى ما تحقق الشرط ، وهذا الفرق البسيط في الحمل قد لا يكون هاماً لي ولك ، ولكنه مهم في تصميم مواقع كبيرة نسبياً تتأثر بالحمل الزائد أثناء تنفيذ الصفحة وبالتالي مع أجتماع هذا الحمل قد يشكل فرقاً آن ذاك ..
2- دالة الـ include يمكن أن نسترجع منها قيماً وتسندها إلى متغير آخر ( نجاح أو فشل مثلاً ) ، بينما دالة الـ require لا يمكنها القيـام بذلك ، ولتوضيح الفكرة قم بفتح ملف جديد وأعطه الإسم fp.inc ، واحفظ فيه ما يلي :
Code ..
<?
@$fp = fopen($name, $mode);
if (!$fp) {
echo "يوجد مشكلة في فتح الملف ..";
return 0;
} else {
return 1;
}
?>
وكذلك أفتح ملفاً جديداً وسمه main2.php واحفظ فيه ما يلي :
Code ..
<?
$name = "main.php";
$mode ="r";
$result = include("fp.inc");
if ($result == 1) { echo "تم الوصول الى الملف ..";}
?>
بإفتراض أنك قمت بتطبيق المثـال الأول ، وحفظت الملفين السابقين في نفس المجلد الذي يحتوي على ملف الـ main.php ، عند تنفيذك المثـال السـابق ( أقصد ملف الـ main2.php ) ستجد أن كلمة ( تم الوصول الى الملف ) قد ظهرت لك ، ما يهمني هنا سواء ظهرت نفس الجملة أو الجمل الأخرى ( يوجد مشكلة في فتح الملف ) أن الدالة include قد تفاعلت معنا وقمنا باسترجاع قيمة الشرط فيها والتي تتحكم فيها دالة return ، وقمنا بإسنـادها الى متغير ( في مثالنا كان المتغير هو result$ ) ، بينما دالة الـ require لا يمكن أن تفعل ذلك ، جرب ذلك بنفسك وغير دالة include في ملف الـ main2.php الى require ولن يتم طباعة شي سواء تمت العملية أو لو تتم .
بقلم : OneTo9