आप पेज PHP operator precedence लिस्टिंग को देखें, तो आपको लगता है कि संयोजन ऑपरेटर .
और इसके अलावा ऑपरेटर +
बाईं संबद्धता के साथ, बराबर पूर्वता है देखेंगे। इसका मतलब यह है कि ऑपरेशन बाएं से दाएं किया जाता है, ठीक उसी तरह कोड दिखाता है। उस पर नजर डालते हैं:
$output = "sum: " . $a;
echo $output, "\n";
$output = $output + $b;
echo $output, "\n";
यह निम्न उत्पादन देता है:
sum: 1
2
संयोजन काम करता है, लेकिन आप तो संख्या 2
को स्ट्रिंग sum: 1
जोड़ने के लिए प्रयास करें। Strings that don't start with a number evaluate to 0
, इसलिए यह 0 + 2
के बराबर है, जिसके परिणामस्वरूप 2
है।
समाधान, जैसा कि आप अपने प्रश्न में सुझाव देते हैं, ब्रैकेट में अतिरिक्त संचालन को संलग्न करना है, इसलिए उन्हें एक साथ निष्पादित किया जाता है, और फिर उन परिचालनों का परिणाम संगत होता है।
echo "sum: " . ($a + $b);
यदि आपके प्रश्न का उत्तर दिया गया है, तो आप उत्तर स्वीकार कर सकते हैं। यह सवाल हल के रूप में चिह्नित करता है। – lonesomeday