بسم الله الرحمن الرحيم
ما هو الفرق بين معامل المساواه الثنائى والثلاثى فى عمل شرط للتحقق من القيمه المنطقيه للدوال فى 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 فقط في حالة فشل الدالة في التحقق، وتعيد سلسلة نصية وهي عبارة عن القيمة بعد الفلترة.
التعليقات