3
vermiyorum ben 0 güce sahip ancak bitiş sonuçları 1 GÜN vardır bekliyorum php dize karşılaştırması beklenen sonuçlar
$duration = 0;
if ($duration == 'daily') {
$duration = '+1 DAY';
}
echo $duration;
altındaki küçük kod parçacığı vardır var. Yukarıdaki koşulların neden başarılı olduğunu anlayamıyorum?
Fakat === beklenen sonuçları döndürüyoruz.
php 7
ve php 5.5
adreslerini kontrol ettik. Her iki versiyon da 0 değerini çıkış olarak veriyor.
Bir çeşit hokkabazlık sorunuyla karşılaşıyorsunuz gibi görünüyor. Temel olarak, bir tam sayıya "günlük" yazmayı ve tam sayı 0'a uyan 0 almayı deniyor (http://stackoverflow.com/questions/4098104/odd-behaviour-in-a-switch-statement). Ayrıca, genel bir kural olarak, eğer bir = – GordonM
Php yok 'u çıkarırsanız yanlışlıkla atayamayacağınız zeminde bir karşılaştırmanın sol tarafında değişemeyen sabit/işlev çağrısı/şeyini koymak daha iyidir. 'string' ('daily') ve 'integer '(0) değerlerini karşılaştırmayı bilmemesi için if ifadesinin her zaman doğru ve' $ duration =' +1 DAY '. –