فما رأيكم لو أردنا التحكم بهذا العمود من الرابط؟؟
<?
print '<table border=1>';
for($r=1; $r<=10; $r++){
if($r != $line1 && $r != $line2){
print '<tr>';
for($i=1; $i<=8; $i++){
print '<td> السطر'.$r.' الحقل'.$i. '</td>';
}
print '</tr>';
}
}
print '</table>';
?>
لقد استبدلنا القيم المستثناة بمتغيرات... ولكن هذه المتغيرات ليس لها قيمة
قيمها ستأخذها من الرابط!!... كيف؟؟... يجب أن يكون الرابط بهذا الشكل:
http://localhost/lesson5/test1.php?line1=3&line2=7
حيث 3 هي القيمة المفترضة لرقم السطر المستثنى الأول و7 للثاني...
لكن هناك مشكلة ستحدث اذا ما طلبنا الرابط بدون هذه المتغيرات فيه... حيث سيعتبر قيمها تساوي الفراغ ولن يستثني شيئاً... لذلك من الممكن أن نضيف على المثال شرطاً هو كالتالي:
<?
if(!$line1) $line1 = 3;
// يتحقق الشرط اذا لم يكن هناك أي قيمة لهذا المتغير
if(!$line2) $line1 = 7;
// وهنا نكمل المثال السابق..
print '<table border=1>';
for($r=1; $r<=10; $r++){
if($r != $line1 && $r != $line2){
print '<tr>';
for($i=1; $i<=8; $i++){
print '<td> السطر'.$r.' الحقل'.$i. '</td>';
}
print '</tr>';
}
}
print '</table>';
?>
مامعنى الشرط السابق...
معناه "إذا لم تجد أن للمتغير line1 قيمه فاعطه القيمة 3"
وهنا وفي البرمجة بشكل عام: اشارة التعجب تعني النفي أو العكس...
واستغنينا عن قوس التعليمات في if لأننا وضعنا فيها تعليمة واحدة... ومن الممكن وضعه وليس بالمشكلة...
وعكس هذا الشرط:
{ }(if($line1 وهنا يتحقق الشرط اذا كان هناك أي قيمة لهذا المتغير
أمر أخير بالنسبة للمتغيرات وهو بعض ملاحظات فيها
- نفصل بين أسماء المتغيرات وقيمها بإشارة =
- ونفصل بين كل متغير وقيمته مع متغير اخر بإشارة &
- ونفصل بين أول متغير واسم الصفحة البرمجية بإشارة ؟
- اذا طلبنا رابط صفحة وذكرنا في الرابط عدة متغيرات بقيم متعددة... وكان في الكود code البرمجي عملية تخزين لقيمة ضمن أحد المتغيرات فإن المتغير سيحتفظ بقيمته الأخيرة... وينفذ على أساسها... لذلك وضعنا الشرط قبل تخزين القيم الافتراضية في حال لم يكن للمتغير قيمه من الرابط في مثالنا الأخير
- المثال الأخير كما هو الآن سيعمل بدون مشاكل على كمبيوترك الشخصي...
لكن ارفعه على الانترنت ستجد انك مهما غيّرت من القيم من الرابط سيبقى يأخذ القيم الافتراضية 3 و 7
وسبب ذلك نوع حماية مستخدم اسمه register_global لا يهمنا ... لكنه يرفض التعامل مع المتغيرات بأسمائها كما هي في الرابط...
وعند فحص قيمتها يخبرك بأنها فارغة
فالمتغيرات التي تريد أخذها من الرابط للتعامل معها عليك أن تأخذها بالشكل