ما هو الفرق بين معامل المساواه الثنائى والثلاثى فى عمل شرط للتحقق من القيمه المنطقيه للدوال فى php

  • ayman2011a

بسم الله الرحمن الرحيم

ما هو الفرق بين معامل المساواه الثنائى والثلاثى فى عمل شرط للتحقق من القيمه المنطقيه للدوال فى php وما هو الذى استخدموا ولماذا مثال

استخدم هذا

$f=filter_var($int, FILTER_VALIDATE_INT);

if($f==true)

{

echo" true ";

}

else

{

echo "false";

}

ام هذا

$f=filter_var($int, FILTER_VALIDATE_INT);

if($f===true)

{

echo" true ";

}

else

{

echo "false";

}


الفرق بسيط جداً ,

علامتين مساواة تعني :

تحقق من القيكة بغض النظر عن نوع المتغير

اي انه عند استخدام علامتين يساوي في القيم المنطقية :

1 - ان كان المتغير نصي وغير فارغ فستتم عملية الشرط

2 - ان كان المتغير رقمي فان كان المتغير يحمل قيمة غير الصفر فعملية الشرط تتم ,

امثلة سريعة :

$stringVar = "Hello I'm not empty string";

if($stringVar == true)
{
    echo "PASS";
}
else 
{
    echo "FAIL";
}
// output PASS


$numberVar = 15;

if($numberVar == true)
{
    echo "PASS";
}
else 
{
    echo "FAIL";
}
// output PASS


$numberVar = 0;

if($numberVar == true)
{
    echo "PASS";
}
else 
{
    echo "FAIL";
}
// output FAIL

اما بالنسبة لثلاث علامات مساواة فهذا يعني التحقق من القيمة والنوع ,

في حال كانت امثلتنا السابقة ب 3 علامات يساوي فكلها ستفشل ويطبع FAIL.

مثال

$boolVar = true;
$numberVar = 1;

if($boolVar == $numberVar)
{
    echo "the $boolVar is equal $numberVar";
}
else
{
    echo "Oops, something went wrong";
}

if($boolVar === $numberVar)
{
    echo "the $boolVar is equal $numberVar";
}
else
{
    echo "Oops, something went wrong";
}

في الشرط الاول سيتم تنفيذ الجملة (( echo "the $boolVar is equal $numberVar";

)))

لانه علامتين مساواة

اما في الشرط الثاني سيتم تنفيذ (((echo "Oops, something went wrong";

)))

لاه 3 علامات مساواة , القيم متساوية ولكن الانواع مختلفة .

جزاك الله كل خير لكن متي يتم تحقيق الشرط بتلات علامات المساواه في القيم المنطقيه

  • جرب الأمثلة في الرد أعلاه سيتضح لك الفرق

  • على سبيل المثال لدينا دالة تُعيد عدة قيم اما سلاسل نصية أو قيم منطقية أو أعداد ونريد التحقق من القيمة المُعادة من الدالة كونها قيمة منطقية فقط إما false أو true فقط لا غير في هذه الحالة لا يصلح إلا استخدام مُعامل المُساواه الثلاثي ===

$f=filter_var($int, FILTER_VALIDATE_INT);

if($f===true)

{

echo" true ";

}

else

{

echo "false";

}

انا جربت على المثال ده بمعامل المساواه الثلاثى الشرط مش بيتحقق مع انى الداله 

رجعت بقيمه منطقيه لكن بمعامل مساواه ثنائى الشرط بيتحقق

الدالة لا تُعيد القيمة المنطقية true

القيمة المُعادة من الدالة

Returns the filtered data, or FALSE if the filter fails.

وهذا يعني أن الدالة تعود بالقيمة false فقط في حالة فشل الدالة في التحقق، وتعيد سلسلة نصية وهي عبارة عن القيمة بعد الفلترة.