echo
तत्काल उत्पादन करता है। यदि आप किसी फ़ंक्शन को प्रतिध्वनित करने का प्रयास करते हैं जो स्वयं एक प्रतिध्वनि करता है, तो फ़ंक्शन की प्रतिध्वनि पहले निष्पादित होती है। उदा.
function foo() {
echo 'foo';
}
echo 'bar' . foo(); // output foobar
और
. के समकक्ष के रूप में निष्पादित करता हैecho 'foo';
echo 'bar';
क्यों? क्योंकि echo
पहले आउटपुट होने वाली स्ट्रिंग का निर्माण करना है। तो bar
. से पहले प्रतिध्वनित किया जा सकता है, मूल प्रतिध्वनि को foo()
call पर कॉल करना होगा . वह फ़ंक्शन कुछ भी वापस नहीं करता है, यह केवल अपनी प्रतिध्वनि करता है। एकाधिक echo
कॉल एक दूसरे के साथ समन्वय नहीं करते हैं, इसलिए फू की गूंज इसका आउटपुट करती है। फिर foo पैरेंट इको को कुछ भी नहीं देता है, इसलिए आप echo 'bar' . null
, और आउटपुट bar
।
यदि आपके पास यह था:
function bar() {
return 'bar';
}
echo 'foo' . bar();
यह अपेक्षा के अनुरूप काम करेगा। निष्पादन क्रम होगा:
$temp = bar(); // $temp gets string'bar'
echo 'foo' . $temp;
echo 'foo' . 'bar';
echo 'foobar';
-> output foobar