<?= count(false) ?>
neden 1
döndürdüğünü biliyor musunuz? false
ÇünküNeden (yanlış) geri dönüş 1 sayılır?
cevap
Belirtilen davranışı:
var bir dizi ya da uygulanan Sayılabilir arayüzü ile bir amacı, değilse, 1 döndürülür. PHP bir eleman, bir dizi veya bir nesne olup olmadığını belirlemek için
count()
kullanmasını birini engelliyor gibi
aynı zamanda bir değerdir ve sayım() dizi ama geçerli bir değişken almazsa o 1
olduğunu true
döndürür.
$result = count(null);
// $result == 0
$result = count(false);
// $result == 1
"Rastgele" yorum: nasıl (0) false değerini döndürürse ve (-1) true değerini döndürürse böyle olur. –
Kapa çeneni: 'true' döndürmez. "say" bir dizi beklemektedir ve eğer "var" bir değilse, bir diziye dökülür. 'False' geçerli bir değer olduğundan, bir öğe ile bir diziye dökülür: 'false' değerine sahip bir öğe. http://justinsomnia.org/2007/12/in-php-countfalse-returns-1/ –
göre bana görünüyor. Bunun için özel işlevler vardır (is_array()
, is_object()
) ve count()
'u saf olarak kullanmak ve dizi veya nesneyi belirlemek için false
koşulunu kontrol etmek cazip gelebilir. Bunun yerine, PHP nesneler olmayan, olmayan diziler 1
(gerçektir) döndürür, böylece bu yöntem bu şekilde saf olarak kullanılamaz (çünkü 0
boş bir dizi/nesne için geçerli, hatalı bir sonuçtur).
Bu, açıkladığınız durumdaki işlev tarafından döndürülen değer seçiminin arkasındaki neden olabilir.
Bir dizi veya nesne olup olmadığını belirlemeye çalışmaz, dizinin uzunluğunu belirlemeye ve 0 kayıt veya var olmayan bir dizinin neden hala geri döneceğini sorgulamaya çalışıyor. – jerebear
kafanızda bu hatırlamak için güzel bir yolu:
- sayımı (yanlış) temelde aynıdır:
- sayımı ("tek boolean") ve bu nedenle "TEK" mantıksal ifadenin olarak vardır sonuç.
olası bir kopyası [yanlış sayım sayısı 1'dir ve boş bir diziden oluşursa yanlış verilir. neden?] (http://stackoverflow.com/questions/3776882/count-of-false-gives-1-and-if-of-an-empty-array-gives-false-why) – mario