2008-10-24 8 views

उत्तर

243

से: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40

  1. स्पीड। दोनों के बीच एक अंतर है, लेकिन गतिशील यह अप्रासंगिक होना चाहिए जिसे आप उपयोग करते हैं। इको थोड़ा तेज़ है क्योंकि यह वास्तव में नट किरकिरा तक पहुंचना चाहता है, तो यह रिटर्न वैल्यू सेट नहीं करता है।

  2. अभिव्यक्ति। print() उस फ़ंक्शन की तरह व्यवहार करता है जिसमें आप कर सकते हैं: $ret = print "Hello World"; और $ret1 होगा। इसका मतलब है कि प्रिंट का उपयोग अधिक जटिल अभिव्यक्ति के हिस्से के रूप में किया जा सकता है जहां गूंज नहीं हो सकता है। पीएचपी मैनुअल से एक उदाहरण:

$b ? print "true" : print "false"; 

प्रिंट भी पूर्वता तालिका जो यह अगर यह एक जटिल अभिव्यक्ति के भीतर इस्तेमाल किया जा रहा है की जरूरत है का हिस्सा है। हालांकि यह प्राथमिकता सूची के नीचे के नीचे है। केवल "," और, OR और XOR कम हैं।

  1. पैरामीटर (ओं)। व्याकरण है: echo expression [, expression[, expression] ... ] लेकिन echo (expression, expression) मान्य नहीं है। यह मान्य होगा: echo ("howdy"),("partner"); जैसा कि: echo "howdy","partner"; (कि सरल उदाहरण में कोष्ठक लाना कोई उद्देश्य में कार्य करता के बाद से है कि वहाँ की तरह एक भी अवधि के साथ कोई ऑपरेटर पूर्वता मुद्दा।)

तो, गूंज कोष्ठकों से अधिक पैरामीटर, जो concatenated मिल ले जा सकते हैं बिना:

echo "and a ", 1, 2, 3; // comma-separated without parentheses 
    echo ("and a 123");  // just one parameter with parentheses 

print() केवल एक पैरामीटर ले जा सकते हैं:

print ("and a 123"); 
    print "and a 123"; 
+26

इको भी एक त्रिगुट ऑपरेशन में इस्तेमाल किया जा सकता: गूंज ($ ख)? 'सही गलत'; – philjohn

+26

@philjohn मुझे यकीन है कि आपका कथन इसके बराबर है: echo (($ b)? 'True': 'false'); और नहीं: (गूंज ($ बी))? 'सही गलत'; तो इको टर्नरी ऑपरेशन में वास्तविक स्थिति का हिस्सा नहीं है। – Bart

+4

कुछ 'echo' के साथ करने योग्य नहीं करने के हित में: '$ बी? प्रिंट "सत्य": मरें ("झूठा"); ' – Brilliand

5

जैसा कि PHP.net मैनुअल बताता है, this discussion का एक पठन लें।

एक बड़ा अंतर यह है कि echo आउटपुट में एकाधिक पैरामीटर ले सकता है। उदा .:

echo 'foo', 'bar'; // Concatenates the 2 strings 
print('foo', 'bar'); // Fatal error 

आप एक निर्गम बयान के परिणाम का मूल्यांकन करने के लिए (नीचे के रूप में) का उपयोग print देख रहे हैं। यदि नहीं, echo का उपयोग करें।

$res = print('test'); 
var_dump($res); //bool(true) 
+5

गूंज नहीं गूंज स्वीकार करें ('foo', 'bar') ;, लेकिन echo 'foo', 'bar' स्वीकार करता है; – grilix

+2

मुझे पता है कि यह जवाब पुराना है, लेकिन हमेशा 'प्रिंट' नहीं करता है 1? इसके अलावा, कुछ और मुद्रित होने के लिए आपको कभी और क्यों परीक्षण करने की आवश्यकता होगी? यह सिर्फ सीधे की जरूरत नहीं है, कभी! काफी स्पष्ट रूप से, प्रिंट बेकार है और इसे हटाया जाना चाहिए, ईसीएचओ के पक्ष में! –

63

वे हैं:

  • प्रिंट केवल एक पैरामीटर लेता है, गूंज से अधिक पैरामीटर हो सकता है, जबकि।
  • प्रिंट एक मान (1) देता है, इसलिए अभिव्यक्ति के रूप में उपयोग किया जा सकता है।
  • गूंज थोड़ा तेज़ है।
7

ऊपर उत्तर देने के लिए जोड़ने के लिए, जबकि प्रिंट केवल एक पैरामीटर ले जा सकते हैं, यह अनेक मान के संयोजन के लिए अनुमति देगा, यानी:

$count = 5; 

print "This is " . $count . " values in " . $count/5 . " parameter"; 

यह वह जगह है 5 1 में मान पैरामीटर

4

मुझे लगता है कि print()echo से धीमा है।

मैं केवल इस तरह की स्थितियों के लिए print() का उपयोग करना चाहते:

echo 'Doing some stuff... '; 
foo() and print("ok.\n") or print("error: " . getError() . ".\n"); 
+0

क्या आप इसे और स्पष्ट कर सकते हैं, महोदय? – Legend

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