मुझे अपनी स्थिति को किसी विधि में शब्दों में बदलना है, लेकिन जब मैं विधि के लिए स्ट्रिंग के रूप में तर्क पास करता हूं, तो मुझे दोनों स्थितियों से परिणाम मिलता है:
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;