2016-02-02 9 views
5

जब मैं कुछ अजीब सामना करता था तो मैं एक छोटा प्रोग्राम लिख रहा था। यदि मैं चाहता था कि PHP एक गूंज कथन के साथ जोड़ या घटाव के अंकगणितीय परिचालन प्रस्तुत करे और ऑपरेशन के नतीजे मुझे कोष्ठक जोड़ना पड़ा या HTML पृष्ठ ऑपरेशन प्रस्तुत नहीं करेगा बल्कि परिणाम ही होगा।संगत होने पर आपको + - संचालन में ब्रांड्स क्यों जोड़ना होगा?

नीचे एक संक्षिप्त उदाहरण है।

पहला मामला (कोष्ठकों के बिना):

$a = 10; 
$b = 5; 
echo "$a + $b = ".$a + $b."<br>"; // 15 
echo "$a - $b = ".$a - $b."<br>"; // 5 
echo "$a * $b = ".$a * $b."<br>"; // 10 * 5 = 50 
echo "$a/$b = ".$a/$b."<br>"; // 10/5 = 2 
echo "$a % $b = ".$a % $b."<br>"; // 10 % 5 = 0 

(कोष्ठकों के साथ) दूसरे मामले:

$a = 10; 
$b = 5; 
echo "$a + $b = ".($a + $b)."<br>"; // 10 + 5 = 15 
echo "$a - $b = ".($a - $b)."<br>"; // 10 - 5 = 5 
echo "$a * $b = ".($a * $b)."<br>"; // 10 * 5 = 50 
echo "$a/$b = ".($a/$b)."<br>"; // 10/5 = 2 
echo "$a % $b = ".($a % $b)."<br>"; // 10 % 5 = 0 

किसी को समझा सकते हैं क्यों यह हो रहा है?

+3

दो शब्दों में, [ "__Operator Precedence__"] (http के साथ कोई गणितीय क्रियाओं। नेट/मैनुअल/एन/भाषा.ऑपरेटर्स.precedence.php) –

+1

@ मार्कबकर क्षमा करें, हालांकि ऑपरेटर की प्राथमिकता निश्चित रूप से यहां एक भूमिका निभाती है, यह स्पष्ट नहीं है कि ओपी को वर्णन आउटपुट क्यों मिलता है। मैंने जांच की और एक ही परिणाम मिला। चूंकि आप स्पष्ट रूप से जानते हैं कि क्या हो रहा है, क्या आप अपनी टिप्पणी को विस्तारित करना चाहते हैं? धन्यवाद! – arkascha

+0

विशेष रूप से 'echo' के उपयोग के संबंध में एक संकेत। संगत मत करो! इसके बजाय ',' का उपयोग करें। जैसे 'echo "$ a + $ b =", $ a + $ b, "
";' आप इन समस्याओं में फिर कभी भाग नहीं पाएंगे। – Yoshi

उत्तर

4

link से मार्क बेकर द्वारा आप देख सकते हैं कि

अलावा, घटाव, और स्ट्रिंग संयोजन बराबर पूर्वता है!

echo "$a + $b = ".$a + $b."<br>"; //15

जुटना पहली स्ट्रिंग शाब्दिक और $a के मूल्य में

, तो परोक्ष एक नंबर (10) है कि परिवर्तित ताकि आप इसे करने के लिए $b जोड़ सकते हैं, और फिर अंतिम स्ट्रिंग शाब्दिक श्रेणीबद्ध। //www.php:

जब आप इसे कोष्ठक में डाल दिया, इसके अलावा संख्या (15) के रूप में व्यवहार किया जाता है इसलिए स्ट्रिंग

+0

में बहुत अच्छी तरह से समझाया है जो कि धन्यवाद धन्यवाद :) – Tim8288

+0

तो ओपीएस प्रश्न का उत्तर यह है: "स्ट्रिंग से न्यूमेरिक का एक अंतर्निहित प्रकार रूपांतरण '+' का मूल्यांकन करने से पहले किया जाता है। ऑपरेटर – arkascha

+0

जो कुछ भी मुझे अभी भी समझ में नहीं आता है। "10 + 5 = 10" का एक संख्यात्मक काम करने के लिए एक प्रकार का रूपांतरण कैसे होना चाहिए? – arkascha

संबंधित मुद्दे