/ / बूलियन और स्ट्रिंग हालत - PHP

बूलियन और स्ट्रिंग हालत - PHP

मुझे अपनी स्थिति को किसी विधि में शब्दों में बदलना है, लेकिन जब मैं विधि के लिए स्ट्रिंग के रूप में तर्क पास करता हूं, तो मुझे दोनों स्थितियों से परिणाम मिलता है:

public static function Status($status)
{
if ($status == true || $status == True  || $status == "true" || $status == "True" || $status == 1)
{
echo "true";
}
if ($status == false || $status == False || $status == "false" || $status == "False" || $status == 0)
{
echo "false";
}
}

जब मैं "गलत" मान को विधि के अनुसार स्ट्रिंग के रूप में पास करता हूं truefalse परिणाम लेकिन मुझे स्ट्रिंग मानों के साथ कोई समस्या नहीं है।

उत्तर:

जवाब के लिए 5 № 1

आपको उपयोग करना चाहिए === के बजाय == यह जांचने के लिए कि क्या मूल्य समान है या नहीं। क्योंकि किसी भी स्ट्रिंग के रूप में माना जाएगा true यदि परिवर्तनीय प्रकार की जांच किए बिना तुलना की जाती है। तो, अपना कोड बदलें

function Status($status)
{
if ($status === true || $status === True  || $status === "true" || $status === "True" || $status === 1)
{
echo "true";
}
if ($status === false || $status === False || $status === "false" || $status === "False" || $status === 0)
{
echo "false";
}
}

http://php.net/manual/en/language.operators.comparison.php


उत्तर № 2 के लिए 1

एक आसान चाल जो काम में आ सकती है:

if (is_string($status)) $status = json_decode($status);
if ($status) {
echo "true";
}
else {
echo "false";
}

json_decode एक बूलियन में "झूठी" या "झूठी" को परिवर्तित करेगा असत्य, सच के साथ ही।

ऐसा करने का एक और तरीका अकेले तार छोड़ना होगा, इसलिए "सत्य" और "झूठी" स्ट्रिंग में बुलियन और पूर्णांक को परिवर्तित करें।

if (!is_string($status)) $status = ($status) ? "true" : "false";
echo $status;