طريقة صياغة الشروط البرمجية في لغة phpc_php
مرحبا
I - الدالة if
الدالة if هي الدالة شرطية الأساسية في لغة php
بحيث $condition هو الشرط . و ما داخل اللامتين {} هو الناتج عن تحقق الشرط
قمت بكتابة الشرط على شكل متغير من أجل التبسيط
يمكن تعريف المتغير بأي شرط منطقي
في هدا المثال الشرط هو أن يكون 1 يساوي 1
و بما أن 1 يساوي 1 فسيقوم البرنامج بطباعة ok
يمكن كثابة الكود مختصرا كالآتي
يجب أن يكون الشرط مكثوبا بصيغة ترجع إحدا القيمتين true أو false
أي صحيح أو خاطئ و بنائا عليه يتم تنفيد ما بين اللامتين {}
يمكن كتابا الشرط بعدة صيغ و ليس شرط التساوي فقط
شرط إنعدام التساوي _ لا تساوي ( != )
أكبر من أو تساوي >=
أصغر من أو تساوي
يمكن أيضا التحقق من وجود متغير بإستخدام دالة isset و اللتي ترجع إحدا القيمتين true أو false
في هدا المتال سيتحقق البرنامج من وجود المتغير $var و يقوم بطباعته إلى شاشة العرض إن وجد
و على غرار دالك يمكن التحقق من وجود ملف بإستخدام الدالة is_file
إدا توفر الملف file.rar في المسار folder/ سترجع الدالة is_file القيمة true و بالتالي طباعة ok
يمكن أيضا عكس الدالتين السابقتين isset و is_file و بالتالي التحقق من عدم وجود المتغير / الملف من أجل تنفيد الشرط و دلك بكتابة الرمز علامة التعجب ! قبل الدالة
ستقوم الدالة هنا بإرجاع القيمة true إدا كان المتغير $var غير موجود و بالتالي طباعة no
II - الرموز || و &&
يشير الرمز || إلى العبارة "أو "
بينما يشير && إلى " و "
من أجل التبسيط في الأمثلة سأقوم بتحويل الشروط إلى متغيرات
- في هدا المتال سيتحقق البرنامج من الشرطين $cond1 و $cond2 معا
و بالتالي لن يقوم بطباعة ok إلا إدا توفر الشرطين معا و ليس أحدهما
يمكن تكرار && عدة مرات و ستكون النتيجة واحدة : تنفيد ما بين اللامتين {} إدا تحققت جميع الشروط
المتال التالي سيتحقق البرنامج من توفر أحد الشرطين و ليس كلاهما بالضرورة
كما في && يمكن إستخدام || داخل الدالة if أكثر من مرة
-----------------
يمكن الدمج بين && و || داخل الدالة بإستخدام الأقواس ( ) كما هو الحال في المعادلات الرياضية
في هدا المثال سيقوم البرنامج بطباعة ok إدا توفر الشرط cond1 مع أحد الشرطين cond2 أو cond3
يمكن إستخدام الأقواس داخل الدالة if أكثر من مرة
مثال توضيحي
يمكن إدراج && و || داخل الأقواس و خارجها حسب ما يقتضيه الشرط المطلوب
III - جدول الرموز
يمكن الإستعانة بالجدول التالي لمعرفة الرموز اللتي يمكن إستخدامها داخل الشرط مع وظائفها
VI- الدالة elseif
لا يمكن كتابة الدالة elseif إلا بعد اللامتين خاصة if . فهي تأتي بديلا لها ( في حالة عدم توفر الشرط الأول )
مثال
في المثال أعلاه لن تقوم الدالة elseif من التحقق من الشرط cond2 إلا إدا لم يتم تحقق الشرط في دالة if اللتي سبقتها ( cond1 )
يمكن إستخدام دالة elseif بعد if بشكل متسلسل أكثر من مرة
في المثال أعلاه لن يتم تنفيد أكتر من شرط واحد . فإدا تحقق شرط داخل الدالة if أو elseif فلن يتم إعتبار الشروط اللتي تأتي بعدها في دوال elseif المتسلسلة
V - الدالة else
تأتي الدالة else بعد if أو elseif لتنفيد إجراء بديل عن توفر الشروط السابقة و لا تضم أي مدخلات
مثال
ملاحظة : تأتي الدالة if في أعلى السلسلة الشرطية و يمكن إتباعها بأي عدد من دوال elseif . بينما تأتي الدالة else في ذيل السلسة الشرطية
IV - تداخل الشروط
يمكن إدراج شرط داخل شرط من أجل تمريره للتحقق في حالة تحقق الشرط العلوي و يشمل دلك جميع الدوال بدون إستتناء و بأي ترتيب
مثال مبسط
لن يمر الشرط التاني للتنفيد إلا عند تحقق الشرط الأول اللدي يندرج تحته
أمتلة أخرى أكتر تعقيدا
VII - الشروط المختصرة
يمكن إختصار الشرط إدا لم يكن محتواه طويلا بهده الطريقة
هو إختصار ل :
VIII - الدالة switch
إدا كان لدينا عدد كبير من الشروط المتسلسلة القصيرة فالدالة switch هي أفضل إختيار
مثال
break تعني الخروج من حلقة switch و بالتالي عدم مقارنة الحالات / الشروط التالية
يمكن إستخدام default في أخر السلسلة الشرطية الطويلة كبديل عن دالة else لتنفيد الإجراء في حال عدم تحقق أي من الشروط السابقة
إنتهى الدرس
aa-- --bb
jjjjjjjjjjjjj
تعتبر الشروط أهم ميزة في اللغات البرمجية
إد يمكن من خلالها تنفيد أوامر معينة إنطلاقا من مدى تحقق شرط أو عدمه
بل يستحيل منطقيا برمجة أي برنامج بأي لغة دون إستخدام الشروط
في هده التدوينة شرح مفصل للدالة الشرطية if في لغة php
و غيرها من الدوال المساعدة في التحقق من الشروط
I - الدالة if
الدالة if هي الدالة شرطية الأساسية في لغة php
if($condition){
echo "ok";
}
بحيث $condition هو الشرط . و ما داخل اللامتين {} هو الناتج عن تحقق الشرط
قمت بكتابة الشرط على شكل متغير من أجل التبسيط
يمكن تعريف المتغير بأي شرط منطقي
$condition = 1 == 2;
if($condition){
echo "ok";
}
في هدا المثال الشرط هو أن يكون 1 يساوي 1
و بما أن 1 يساوي 1 فسيقوم البرنامج بطباعة ok
يمكن كثابة الكود مختصرا كالآتي
if( 1 == 2){
echo "ok";
}
يجب أن يكون الشرط مكثوبا بصيغة ترجع إحدا القيمتين true أو false
أي صحيح أو خاطئ و بنائا عليه يتم تنفيد ما بين اللامتين {}
يمكن كتابا الشرط بعدة صيغ و ليس شرط التساوي فقط
شرط إنعدام التساوي _ لا تساوي ( != )
if( 1 != 2){
echo "ok";
}
أكبر من أو تساوي >=
if( 1 >= 2){
echo "ok";
}
أصغر من أو تساوي
if( 1 <= 2){
echo "ok";
}
يمكن أيضا التحقق من وجود متغير بإستخدام دالة isset و اللتي ترجع إحدا القيمتين true أو false
في هدا المتال سيتحقق البرنامج من وجود المتغير $var و يقوم بطباعته إلى شاشة العرض إن وجد
if(isset($var)){
echo $var;
}
و على غرار دالك يمكن التحقق من وجود ملف بإستخدام الدالة is_file
if(is_file("folder/file.rar")){
echo "ok";
}
إدا توفر الملف file.rar في المسار folder/ سترجع الدالة is_file القيمة true و بالتالي طباعة ok
يمكن أيضا عكس الدالتين السابقتين isset و is_file و بالتالي التحقق من عدم وجود المتغير / الملف من أجل تنفيد الشرط و دلك بكتابة الرمز علامة التعجب ! قبل الدالة
if(!isset($var)){
echo "no";
}
ستقوم الدالة هنا بإرجاع القيمة true إدا كان المتغير $var غير موجود و بالتالي طباعة no
II - الرموز || و &&
يشير الرمز || إلى العبارة "أو "
بينما يشير && إلى " و "
من أجل التبسيط في الأمثلة سأقوم بتحويل الشروط إلى متغيرات
- في هدا المتال سيتحقق البرنامج من الشرطين $cond1 و $cond2 معا
if($cond1 && $cond2){
echo "ok";
}
و بالتالي لن يقوم بطباعة ok إلا إدا توفر الشرطين معا و ليس أحدهما
يمكن تكرار && عدة مرات و ستكون النتيجة واحدة : تنفيد ما بين اللامتين {} إدا تحققت جميع الشروط
if($cond1 && $cond2 && $cond3){
echo "ok";
}
المتال التالي سيتحقق البرنامج من توفر أحد الشرطين و ليس كلاهما بالضرورة
if($cond1 || $cond2){
echo "ok";
}
كما في && يمكن إستخدام || داخل الدالة if أكثر من مرة
-----------------
يمكن الدمج بين && و || داخل الدالة بإستخدام الأقواس ( ) كما هو الحال في المعادلات الرياضية
في هدا المثال سيقوم البرنامج بطباعة ok إدا توفر الشرط cond1 مع أحد الشرطين cond2 أو cond3
if( $cond1 && ($cond2 || $cond3) )
{
echo "ok";
}
يمكن إستخدام الأقواس داخل الدالة if أكثر من مرة
مثال توضيحي
if(($cond1 || $cond2) && ($cond3 || $cond4))
{
echo "ok";
}
يمكن إدراج && و || داخل الأقواس و خارجها حسب ما يقتضيه الشرط المطلوب
III - جدول الرموز
يمكن الإستعانة بالجدول التالي لمعرفة الرموز اللتي يمكن إستخدامها داخل الشرط مع وظائفها
VI- الدالة elseif
لا يمكن كتابة الدالة elseif إلا بعد اللامتين خاصة if . فهي تأتي بديلا لها ( في حالة عدم توفر الشرط الأول )
مثال
if($cond1)
{
echo "ok1";
}
elseif($cond2)
{
echo "ok2";
}
في المثال أعلاه لن تقوم الدالة elseif من التحقق من الشرط cond2 إلا إدا لم يتم تحقق الشرط في دالة if اللتي سبقتها ( cond1 )
يمكن إستخدام دالة elseif بعد if بشكل متسلسل أكثر من مرة
if($cond1)
{
echo "ok1";
}
elseif($cond2)
{
echo "ok2";
}
elseif($cond3)
{
echo "ok3";
}
في المثال أعلاه لن يتم تنفيد أكتر من شرط واحد . فإدا تحقق شرط داخل الدالة if أو elseif فلن يتم إعتبار الشروط اللتي تأتي بعدها في دوال elseif المتسلسلة
V - الدالة else
تأتي الدالة else بعد if أو elseif لتنفيد إجراء بديل عن توفر الشروط السابقة و لا تضم أي مدخلات
مثال
if($cond1)
{
echo "ok1";
}
else{
echo "ok2";
}
// or
if($cond1){
echo "ok1";
}
elseif($cond2){
echo "ok2";
}
else{
echo "ok3";
}
ملاحظة : تأتي الدالة if في أعلى السلسلة الشرطية و يمكن إتباعها بأي عدد من دوال elseif . بينما تأتي الدالة else في ذيل السلسة الشرطية
IV - تداخل الشروط
يمكن إدراج شرط داخل شرط من أجل تمريره للتحقق في حالة تحقق الشرط العلوي و يشمل دلك جميع الدوال بدون إستتناء و بأي ترتيب
مثال مبسط
if($cond1)
{
if($cond2){
echo "ok";
}
}
لن يمر الشرط التاني للتنفيد إلا عند تحقق الشرط الأول اللدي يندرج تحته
أمتلة أخرى أكتر تعقيدا
if($cond1){
echo "ok1";
}
elseif($cond2){
if($cond2){
echo "ok2";
else{ echo "ok3"; }
}
}
else{
echo "ok4";
}
VII - الشروط المختصرة
يمكن إختصار الشرط إدا لم يكن محتواه طويلا بهده الطريقة
if($vqr == 16) ? echo "ok" : echo "no";
هو إختصار ل :
if($vqr == 16){
echo "ok";
}
else{
echo "no";
}
VIII - الدالة switch
إدا كان لدينا عدد كبير من الشروط المتسلسلة القصيرة فالدالة switch هي أفضل إختيار
مثال
$var = 5;
switch ($var) {
case 0:
echo 'var equals 0';
break;
case 1:
echo 'var equals 1';
break;
case 2:
echo 'var equals 2';
break;
case 3:
echo 'var equals 3';
break;
case 4:
echo 'var equals 4';
break;
case 5:
echo 'var equals 5';
break;
case 6:
echo 'var equals 6';
break;
case 7:
echo 'var equals 7';
break;
case 8:
echo 'var equals 8';
break;
case 9:
echo 'var equals 9';
break;
}
break تعني الخروج من حلقة switch و بالتالي عدم مقارنة الحالات / الشروط التالية
يمكن إستخدام default في أخر السلسلة الشرطية الطويلة كبديل عن دالة else لتنفيد الإجراء في حال عدم تحقق أي من الشروط السابقة
switch ($var) {
case 0:
echo 'var equals 0';
break;
case 1:
echo 'var equals 1';
break;
case 2:
echo 'var equals 2';
break;
case 3:
echo 'var equals 3';
break;
case 4:
echo 'var equals 4';
break;
case 5:
echo 'var equals 5';
break;
default:
echo 'var is not equal any number';
}
إنتهى الدرس