Nasıl php boolean değişkenleri döküm nedir?

3 Cevap php

Nasıl php boolean değişkenleri döküm nedir?

Ben bir dizi için bir boolean değerini kaydetmek için çalışıyordu:

$result["Users"]["is_login"] = true;

but when I use debug the is_login value is blank. and when I do conditionals like:

if($result["Users"]["is_login"])

koşulları her zaman yanlıştır.

Sonra ben bunu yaparken çalıştı:

$result["Users"]["is_login"] = "true";

ve işe yaradı.

Bu büyük bir anlaşma çok değil ama işlevleri boolean değerleri dönen olduğumda ben hala dizelere onları dönüştürmek zorundayız.

3 Cevap

hiçbir cast var

the

if($result["Users"]["is_login"])

should work. can you try to use var_dump($result["Users"]["is_login"]); to make sure the variable has been set properly.

Eğer kontrol edebilirsiniz değişken isset (manual) işlevini kullanarak ayarlamak veya değildir.

Ayrıca bulmak here PHP booleans değerlendirmek nasıl yapabilirsiniz:

When converting to boolean, the following values are considered FALSE:

the boolean FALSE itself
the integer 0 (zero)
the float 0.0 (zero)
the empty string, and the string "0"
an array with zero elements
an object with zero member variables (PHP 4 only)
the special type NULL (including unset variables)
SimpleXML objects created from empty tags
Every other value is considered TRUE (including any resource).

No casting happens in your example.
Your problem is likely somewhere else.

Eğer kod daha eksiksiz bir parça paylaşmak misin?

Deneyin:


if((bool)$result["Users"]["is_login"] == true)
{
    // do something
}

.

Ve karşılaşma birine cevap:

Ben debug kullanmak ama ne zaman is_login değeri boştur. ve ben koşul seversin zaman:

if($result["Users"]["is_login"])

dönüş değeri, daha sonra, değeri boolean false ise bu nedenle, mainwhile (boş olarak görünür, bunun için bir temsil yok PHP Boole değeri true, olduğundan göreceğiniz bir 0