الشروط للغة php

الشروط تستخدم لتنفيذ أجزاء من البرنامج فقط عندما تستوفى متطلبات محددة مسبقاً، فمثلاً الشرط يمكن أن يكون تاريخ بعد الأول من يناير 2012 أو متغير أكبر من 7.

If...

أول نوع من الشروط سنلقي نظرة عليه هو توثيقif، وهو يكتب بهذا الشكل:
 if (condition) {
    statement
 }
 
 
مرة أخرى، طريقة كتابة الأمر قريبة جداً من اللغة الطبيعية، إذا (If) تحقق شرط فنفذ كذا وكذا، لنلقي نظرة على مثال بسيط:
 <html>

 <head>
 <title>Loops </title>
 </head>
 <body>

 <?php

 $x = 2;

 if ($x > 1) {
    echo "<p>variable $x is greater than 1 </p>";
 }
  
 ?>

 </body>
 </html>
 
 

if ... else ...

النوع التالي من الشروط الذي سنلقي نظرة عليه هو توثيقelse، وهو ما يمكن أن يكتب بهذا الشكل:
 
 if (condition) {
    statement
 }
 else {
    statement
 }

 
مرة أخرى، أسلوب كتابة الأمر قريب من اللغة الطبيعية: إذا (if) تحقق شرط نفذ كذا وكذا، وإلا else نفذ شيئاً آخر.
في الدرس الرابع تعلمت كيف تجد رقم الشهر، في المثال التالي سنستخدم رقم الشهر في حلقة توثيقif وتوثيقelse والشرط وضعت لمعرفة الموسم:
 <html>
 <head>
 <title>Conditions</title>
 </head>
 <body>

 <?php

 if (date ("m") == 3) {
    echo "<p>Now it's spring!</p> ";
 }
 else {
    echo "<p>I do not know what season it is!</p> "; 
 }

 ?>

 </body>
 </html>
 
 
كما ترى، الشرط ليس شرطاً ذكياً وفقط يعمل إن كان الشهر مارس!
على أي حال هناك كثير من الطرق لتحسين الشرط وزيادة دقته، أدناه قائمة العوامل (operators) التي يمكن استخدامها في الشروط:
== يساوي
< أقل من
> أكبر من
<= أقل من أو يساوي
>= أكبر من أو يساوي
!= لا يساوي
بالإضافة إلى ذلك هناك عوامل منطق:
&& و
|| أو
! لا
العوامل يمكن استخدامها لوضع شروط أكثر دقة، الآن يمكن توسيع المثال أعلاه لإدراج كل شهور الربيع:
 <html>
 <head>
 <title>Conditions</title>

 </head>
 <body>

 <?php
 
 if (date("m") >= 3 && date("m") <= 5) {
    echo "<p> Now it's spring!</p> ";
 }
 else {
    echo "<p> Now it's either winter, summer or autumn!</p> ";
 }
  
 ?>

 </body>
 </html>

 
 
لنلقي نظرة مقربة على الشرط المحسن::
 date("m") >= 3 && date("m") <= 5 
 
يمكن ترجمة الشرط إلى:
 إن كان الشهر أكبر من أو يساوي 3، والشهر أقل من أو يساوي 5
 
 
شرط ذكي، أليس كذلك؟ العوامل تلعب دوراً مهماً في كثير من أجزاء PHP.
لكن لا زال البرنامج يعمل لشهور مارس، أبريل ومايو، بقية الشهور لم تذكر في الشرط، لذلك دعنا نطور الشرط أكثر.

if ... elseif ... else...

باستخدام توثيقelseif يمكننا توسيع الشرط ليعمل على كافة الشهور:
 <html>
 <head>
 <title>Conditions</title>

 </head>
 <body>

 <?php
 
 if (date("m") >= 3 && date("m") <= 5) {
    echo "<p>Now it's spring!</p>";
 }

 elseif (date("m") >= 6 && date("m") <= 8) {
    echo "<p>Now it's summer!</p>";
 }

 elseif (date("m") >= 9 && date("m") <= 11) {
    echo "<p>Now it's autumn!</p>";
 }

 else {
    echo "<p>Now is winter!</p>";
 }
  
 ?>

 </body>
 </html>

 
 
لكتابة الشروط عليك أن تفكر بشكل منطقي وتكون منهجياً، المثال أعلاه بسيط لكن الشروط يمكنها أن تصبح معقدة جداً.

switch ... case

هناك طريقة أخرى لكتاب الشروط باستخدام توثيقswitch:
 switch (expression) {
 
 case 1: 
    statement
    break; 
 case 2: 
    statement
    break; 
 default:
    statement
    break;
 }
 
 
هذه الطريقة تعتمد على الشرط أو expression ثم تضع قائمة بمختلف الأجوبة والقيم من خلال البيان أو statements، أسهل طريقة لشرح هذا الأمر هو من خلال مثال.
كما تتذكر في الدرس الرابع وظيفة توثيقdate("w") تعطينا رقم اليوم في الأسبوع، هذا يمكن استخدامه في المثال بكتابة اسم اليوم بدلاً من رقمه:
 <html>
 <head>
 <title>Conditions</title>
 </head>
 <body>

 <?php
 
 switch(date("w")) {
  
 case 1:
    echo "Now it's Monday";
    break;
 case 2:
    echo "Now it's Tuesday";
    break;
 case 3:
    echo "Now it's Wednesday";
    break;
 case 4:
    echo "Now it's Thursday";
    break;
 case 5:
    echo "Now it's Friday";
    break;
 case 6:
    echo "Now it's Saturday";
    break;
 default:
    echo "Now it's Sunday";
    break;
  
 }
  
 ?>

 </body>
 </html>
 
 
غالباً توثيقswitch تستخدم كبديل لأمر توثيقif وتوثيقelse، ما يجب عليك استخدامه في أي ظرف يعتمد على أي طريقة تجدها أسهل وأكثر منطقية، محاولة أن تجعل برنامجك منطقياً وواضحاً سيكون تحدياً كبيراً.

0 التعليقات: