Aşağıdaki kod parçasına sahibim:
$item['price'] = 0;
/* Code to get item information goes in here */
if($item['price'] == 'e') {
$item['price'] = -1;
}
Ürün fiyatını 0 olarak başlatmak ve ardından bununla ilgili bilgi almak amaçlanmıştır. Fiyat 'e' olarak bildirilirse, bir veri tabanında negatif bir sayı olarak saklanan satış yerine değişim anlamına gelir.
Ürün bir bonus olduğu için veya fiyat daha sonra belirleneceği için fiyatı 0 olarak bırakma imkanı da vardır.
Ancak, fiyat ayarlanmadığında, bu da onu başlangıç değeri 0 ile bırakır if
, yukarıda belirtilen döngü doğru olarak değerlendirilir ve fiyat -1 olarak ayarlanır. Yani 0'ı 'e'ye eşit olarak kabul eder.
Bu nasıl açıklanabilir?
Fiyat 0 olarak sağlandığında (başlatmadan sonra), davranış düzensizdir: bazen doğru, bazen yanlış olarak değerlendirilir. *
if((string)$item['price'] == 'e')
garip davranışı düzeltir. Daha fazla ayrıntı için stackoverflow.com/a/48912540/1579327 sayfasına bakın