पीएचपी:ऑपरेटर पूर्वता मुद्दा
$a = 2;
$b = 3;
if($b=1 && $a=5)
{
$a++;
$b++;
}
echo $a.'-'.$b;
$a = 2;
$b = 3;
if($a=5 and $b=1)
{
$a++;
$b++;
}
echo $a.'-'.$b;
आउटपुट 6-16-2
मैं 1
यहाँ समझ में नहीं आता।
पर्ल:
$a = 2;
$b = 3;
if($b=1 && $a=5)
{
$a++;
$b++;
}
print $a.'-'.$b;
$a = 2;
$b = 3;
if($a=5 and $b=1)
{
$a++;
$b++;
}
print $a.'-'.$b;
आउटपुट 6-66-2
, मैं दूसरे 6
यहाँ समझ में नहीं आता।
कोई भी कारण जानता है?
दरअसल मुझे पता है कि &&
and
से अधिक प्राथमिकता है, लेकिन मुझे हाथ से पहले यह जानने पर संदेह है।
अद्यतन
अब मैं PHP एक, क्या पर्ल एक के बारे में समझते हैं?
पायथन में यह पहली झूठी-झूठी या आखिरी ओवरव्यू में परिवर्तित हो जाता है। मुझे लगता है कि पर्ल एक ही तरह से – RiaD
@ जेरोग - एक '&&' अभिव्यक्ति का मूल्यांकन बंद होने पर मूल्यांकन बंद हो जाएगा, इसलिए '1 && 0 और 5',' 0' में अंतिम मान है। इसी प्रकार, '1 && undef && 5'' undef' का मूल्यांकन करेगा। – mob
@ जे रोज '&&' अगर इसका बायां तर्क गलत है तो इसका बायां तर्क लौटाता है; otehrwise यह अपने सही तर्क देता है। '|| अपने बाएं तर्क को लौटाता है यदि इसका बायां तर्क सत्य है, अन्यथा यह सही तर्क देता है। इसलिए '&&' की एक श्रृंखला बाएं सबसे झूठी मान (या अंतिम मूल्य यदि सभी सत्य थे) लौटाती है और '||' की एक श्रृंखला बाएं सबसे सच्चे मूल्य (या अंतिम मूल्य अगर सभी गलत होती है) देता है। – hobbs