PHP में लॉजिकल वैल्यूज की नॉन-स्ट्रिक्ट कम्पेरिजन
पिछले उदाहरण में मैंने तुलना के लिए
ऑपरेटर === का उपयोग किया।
इस मामले में हमारे वेरिएबल की तुलना
true के बराबर की गई थी
मान के साथ-साथ टाइप के अनुसार भी।
हमारे कार्य में ऑपरेटर
== का भी उपयोग किया जा सकता है।
यदि वेरिएबल test में
हमेशा true या false
में से एक मान होगा, तो कुछ भी नहीं बदलेगा:
<?php
$test = true; // यहाँ या true लिखें, या false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
लेकिन अगर वेरिएबल $test में
कोई भी मान आ सकते हैं, तो सब कुछ
बहुत अधिक जटिल हो जाता है। ऐसे मामले में, यदि वेरिएबल में
लॉजिकल मान नहीं होगा, तो यह मान
पहले लॉजिकल में परिवर्तित किया जाएगा और केवल
उसके बाद तुलना की जाएगी।
मान लीजिए, उदाहरण के लिए, हमारे वेरिएबल में
नंबर 1 होगा। इस मामले में यह पहले
लॉजिकल टाइप में परिवर्तित होगा, यानी
true में। और फिर तुलना की जाएगी:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // यह काम करेगा, क्योंकि 1 == true - यह सही है
} else {
echo '---';
}
?>
लेकिन, उदाहरण के लिए, नंबर 0 परिवर्तित होगा
false में। और हमारी शर्त परिणाम में
गलत होगी:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // यह काम करेगा, क्योंकि 0 == true - यह गलत है
}
?>
कोड चलाए बिना, निर्धारित करें कि क्या प्रदर्शित होगा स्क्रीन पर:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
कोड चलाए बिना, निर्धारित करें कि क्या प्रदर्शित होगा स्क्रीन पर:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
कोड चलाए बिना, निर्धारित करें कि क्या प्रदर्शित होगा स्क्रीन पर:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
कोड चलाए बिना, निर्धारित करें कि क्या प्रदर्शित होगा स्क्रीन पर:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
कोड चलाए बिना, निर्धारित करें कि क्या प्रदर्शित होगा स्क्रीन पर:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
कोड चलाए बिना, निर्धारित करें कि क्या प्रदर्शित होगा स्क्रीन पर:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>