PHP, "if ($ değer)" mı

3 Cevap

Boole değeri için select etiketi üreten, ben aşağıdaki kodu kullanabilirsiniz:

<select name="name" id="id">
    <option value="0"<?php if(empty($value)): ?> selected="selected"<?php endif; ?>>Off</option>
    <option value="1"<?php if($value): ?> selected="selected"<?php endif; ?>>Off</option>
</select>

Hiçbir noktada, seçenekler hem selected="selected" özelliğine sahip olacak böylece Yani, soru olacak bu harita doğru, değil mi?

3 Cevap

Burada empty() kullanmak görmek tek nedeni durumunda uyarı $value ayarlı değil kaçınmaktır. Ancak bu durumda size uyarı bir sonraki çizgi olsun. Bu ! aksi booleans inkâr için kullanmak daha yaygın ve daha güzelmiş.

Ama soruyu cevaplamak için, evet, sizin varsayım güvenlidir.

Update: documentation açıkça bildiren

empty() (boolean) var zıt değişkeni ayarlanmamış zaman hiçbir uyarı oluşturulur dışında olduğunu.

(bool) $value !empty($value) eşdeğerdir ve !$value empty($value) eşdeğerdir. Daha fazla bilgi için PHP type comparison tables bakınız.

eInteresting. Söyleyerek:

  • $value is the reciprocal of empty($value)

iddiasında eşdeğer, benim görüşüme göre, olduğunu

  • (bool) $value is equal to !empty($value)

Sizin örnek kod $value iddia doğru olduğu durumda, bir bool (- hacker cevabı varsayım güvenli doğrudur ve Michael Krelin).

Ama bu iddia generally doğru olduğunu? Manuel belgelerine göz önüne alındığında empty(), ben olabileceğini düşünüyorum.