PDA

View Full Version : سوال: مشكل با 0 و false و null



sobhdam
چهارشنبه 14 مرداد 1388, 17:14 عصر
من در تشخيص 0 و بfalse دچار مشكل شدم
به يك مثال دقت كنيد.



$a=array(1,2,3);
if (!array_search(1,$a)){
echo 'ok';
}
if (!array_search(5,$a)){
echo 'ok';
}


هر دو كد، خروجي يكي دارن چون دستور ايف هر دو رو false ميده حالا چيكار كنم كه بين 0 و false فرق بذاره و كد اولي false نباشه

امیـرحسین
چهارشنبه 14 مرداد 1388, 18:03 عصر
if (array_search(1,$a) == false)

sobhdam
چهارشنبه 14 مرداد 1388, 18:28 عصر
جانم اينكه فرقي با كد من نكرد باز شرط اجرا ميشه اگه اولين عنصر آرايه يعني 1 جستجو بشه چون شماره ايندكس عنصر 0 هست false تلقي ميشه و شرط رو اجرا ميكنه
اگه اين مد رو قرار بديم


$a=array(1,2,3);
$n1=array_search(1,$a);
$n2=array_search(6,$a);
$n1=0;
$n2=;


مي بينيد در هر متغيير يه مقدار ريخته شده ولي از انجاي كه php در شرطها 0 رو false مي دونه به همين خاطر هيچ فرقي بين دو متغيير نميزاره
فقط مي خوام بفهمم چطور كاري كنم كه بين '' و 0 , false فرق بذاره
:عصبانی++:

click2ir
چهارشنبه 14 مرداد 1388, 21:53 عصر
دوست عزیز شما از === استفاده کنید که در این صورت علاوه بر مقدار جنس متغییر ها هم بررسی می شود
انشاءلله به نتیجه می رسید
می تونی از نوع متغییر ها استفاده کنی
که تابعی به نام

gettype($var)
نام متغییر رو می گیره و نوعش رو مشخص می کنه با کمک یه شرط می تونی اون رو تشخیص بدی