2009-03-19 20 views
12

क्या इन दो संस्करणों के बीच कोई गति अंतर है?

<?php echo $var; ?> 

<?=$var?> 

आप किसकी सिफारिश करते हैं, और क्यों?

+2

मुझे लघु वाक्यविन्यास पसंद है। यह क्लीनर है। – gradbot

+2

बस --zomg-optimize ध्वज –

उत्तर

17

प्रदर्शन अंतर महत्वहीन है। इसके अलावा, एपीसी के उपयोग के साथ, प्रदर्शन अंतर शून्य, शून्य, नाडा है।

<?=$var?>को लघु टैग सक्रिय करने की आवश्यकता है। लघु टैग XML के भीतर समस्याग्रस्त हैं, क्योंकि <? एक्सएमएल प्रोसेसिंग टैग के लिए भी मार्कअप है। तो यदि आप कोड लिख रहे हैं जो पोर्टेबल होना चाहिए, तो लंबे फॉर्म का उपयोग करें।

http://www.php.net/manual/en/ini.core.php

+0

आप सही हैं, मुझे पोर्टेबल कोड लिखना पसंद है .. आपको सभी 4 प्रतिक्रियाएं धन्यवाद। – grilix

+1

मैं हमेशा लघु रूप का उपयोग करता हूं। यदि कभी मुझे कोड चलाने की आवश्यकता है जहां यह सक्षम नहीं है या जब मुझे XML के लिए आवश्यकता है (इनमें से कोई भी कभी नहीं हुआ है), यह एस/ cletus

+4

@cletus: सभी उचित सम्मान के साथ, आपको कोई फ्रिकिन 'विचार नहीं मिला है। – vartec

4

नहीं, वे समान हैं। यदि आप <?php echo $var; ?> का बहुत उपयोग करना चाहते हैं, अन्यथा बस <?=$var?> के साथ समय बचाएं।

7

तकनीकी रूप से पार्सर को लंबे संस्करण के प्रत्येक चरित्र को पार्स करना पड़ता है, और प्रत्येक स्थानांतरण के लिए कुछ और वर्ण हैं।

यदि आपका वेबसर्वर "पूर्व-संकलन" नहीं करता है (यानी: कैश टोकनयुक्त PHP पृष्ठ) तो थोड़ा सा प्रदर्शन अंतर होता है। जब आप अरबों रनों के बारे में बात करना शुरू करते हैं, तो शायद यह महत्वहीन होना चाहिए।

-Adam

+1

के साथ php recompile करें जब आपके पास अरबों रन हैं तो आप PHP का उपयोग नहीं करेंगे/नहीं। – tstenner

+0

@tstenner: फेसबुक आपके साथ असहमत है। – TheTXI

+0

उस पर पर्याप्त हार्डवेयर फेंक दें ... ऐसे समय होते हैं जहां डेवलपर का समय अधिक हार्डवेयर की तुलना में अधिक महंगा हो सकता है, और बेहतर प्रदर्शन के लिए सभी कोड को पुन: सक्रिय करना बुद्धिमान नहीं है यदि आप आसानी से हार्डवेयर के माध्यम से स्केल कर सकते हैं। फिर भी, वे php optimizers का उपयोग करते हैं ... –

6

प्रदर्शन के अनुसार यह महत्वहीन है।

उचित उपयोग लंबे समय तक उपयोग करने के लिए कहता है, क्योंकि यह अधिक पोर्टेबल है। व्यक्तिगत रूप से? मैं छोटा करता हूं।

+0

+1 एक ही विचार के लिए – David

5
php 5.3 लघु टैग ASP- स्टाइल <%%> समर्थन में

पदावनत किया जाएगा, इससे बचने और '<?php echo' format करने के लिए कोड को फिर से लिखने की कोशिश करते हैं, क्योंकि यू नहीं कर सकते उदाहरण के लिए <?xml ?> इनलाइन का उपयोग करें।

+0

फिर भी PHP पर उन लोगों से एक और विचारशील विचार ...: | –

+0

जहां तक ​​मुझे पता है, इसे डिफ़ॉल्ट रूप से बंद कर दिया जा रहा है। इसमे अंतर है। –

+0

जो उत्तर को कम या ज्यादा FUD बनाता है। अच्छा लगा। – chaos

3

मुझे लगता है कि दूसरे को mini_open_tag (PHP.ini में) को सत्य पर सेट करने की आवश्यकता है।

मतलब यह है कि कुछ वेबसर्वर पर यह बंद हो गया है।

+0

यह क्यों उखाड़ फेंका है? उन्होंने विशेष रूप से एक प्रदर्शन तुलना के लिए कहा, सवाल पोर्टेबिलिटी के साथ कुछ भी नहीं था। यह किसी भी तरह से सवाल का जवाब नहीं देता है, यह ऐसा करने का भी प्रयास नहीं करता है। – meagar

3

करना कौन सा में short_open_tag विवरण देखें आप की सिफारिश

न तो, जब तक आप वास्तव में एचटीएमएल इंजेक्शन अनुमति देना चाहते हैं। (समय के 99%, तुम नहीं।)

<?php echo htmlspecialchars($var); ?> 

या एक समारोह है कि सभी कि टाइपिंग से बचने के लिए छोटे नाम के साथ गूंज (htmlspecialchars ($ आर्ग)) करता है परिभाषित करते हैं।

+1

इस बिंदु पर, मेरे पास सभी चर साफ और सुरक्षित हैं :) .. इसलिए मुझे इसे केवल प्रिंट करना होगा .. – grilix

+1

@bobince यह परावर्तक का एक गंभीर मामला है ... क्या आप अपने सभी वर्रों पर htmlspecialchars() का उपयोग करते हैं ? –

+0

@jcinacio - यदि चर को क्लाइंट को प्रतिबिंबित किया जा रहा है और जानबूझकर HTML को शामिल करने के लिए नहीं बनाया गया है, तो, आपको वास्तव में इसे पहले एन्कोड करना चाहिए। यह संभावित रूप से एक * बहुत * गंभीर सुरक्षा समस्या है। –

2

गति अंतर इस बात पर निर्भर करता है कि आप उन 9 अतिरिक्त पात्रों को कितनी तेज़ी से टाइप कर सकते हैं।
यह आपके कोड की पठनीयता में भी सुधार कर सकता है, लेकिन यह बहस योग्य है।

यदि आप निष्पादन-गति के बारे में बात करते हैं तो इसमें कोई उल्लेखनीय अंतर नहीं है।

1

इनके साथ अनुकूलित करने का प्रयास न करें, यह बेकार है।इसके बजाय, allow_short_tags को निष्क्रिय करें (XML फ़ाइलों को लोड करते समय समस्याओं की वजह से) और स्वच्छ, पठनीय और समझने योग्य कोड लिखें।

भले ही मामूली अंतर हो (जो निश्चित रूप से 10% से कम है) हो, यह इसके साथ अनुकूलित करने के लिए उपयोगिता है। यदि आपकी स्क्रिप्ट धीमी हैं, तो पहले अपने लूप देखें। अधिकांश समय आप अजीब वाक्यविन्यास का उपयोग करके प्रोग्राम प्रवाह को अनुकूलित करके बहुत अधिक प्रदर्शन जीत सकते हैं।

+0

10% * * * * के बजाय ' meagar

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