لدي دالة سرطية بسيطة
كود PHP:
if ( $val == "inc" )
$update_fields .= "`$key`='$key'+1, ";
elseif ( $val == "dec" )
$update_fields .= "`$key`='$key'-1, ";
else
$update_fields .= "`$key`='$val', ";
كما هو واضح
ذهبت لها ب $val أحيانا بالقيمة 0
فكانت تنفذ الشرط الثالث بشكل صحيح
ولكن في بعض الأحيان كانت تنفذ الشرط الأول
فلما غيرتها ل
كود PHP:
if ( $val === "inc" )
$update_fields .= "`$key`='$key'+1, ";
elseif ( $val === "dec" )
$update_fields .= "`$key`='$key'-1, ";
else
$update_fields .= "`$key`='$val', ";
أصبحت تعمل بشكل صحيح
هل هناك تفسير للامر
أعلم أن === تعني تساوي ومن نفس النوع
ولكن 0 لا تساوي inc بأي حال من الأحوال :looking: