आखिरकार, प्रकार की घोषणाओं को जोड़ने पर प्रदर्शन आपकी चिंता नहीं होनी चाहिए। वे प्रोग्रामर के जीवन को आसान बनाने के लिए मौजूद हैं, न कि दुभाषिया के। अगर आपको लगता है कि वे आपके लिए सहायक होंगे तो उनका प्रयोग करें। चाहे आप प्रकार की घोषणाओं का उपयोग करें या नहीं, आपके कोड के प्रदर्शन का मुख्य निर्धारक होने की संभावना नहीं है।
इसके साथ ही कहा जा रहा है, वर्तमान में (PHP 7.0) वहाँ वास्तव में एक छोटा सा प्रदर्शन दंड जब प्रकार घोषणाओं उपयोग किया जाता है, पीएचपी अब मान आप में और कार्यों से बाहर पारित के प्रकार की जाँच करने के लिए किया है। यह तेजी से होता है सब पर जांच नहीं करने के लिए है, जो है क्या होता है जब आप एक प्रकार घोषणा की जरूरत नहीं है जब।
हालांकि, यह थोड़ा अधिक है कि तुलना में सूक्ष्म है, और स्थिति बदल रही है।
सख्त टाइपिंग बलों क्या आप सख्त टाइपिंग उपयोग कर रहे हैं सही प्रकार
पारित करने के लिए, आप आदर्श प्रकार (जैसे पूर्णांक) के मान पारित करने के लिए है, बल्कि कुछ अन्य प्रकार के पारित करने के लिए सक्षम किया जा रहा (से उदाहरण के लिए स्ट्रिंग) और PHP आपके लिए इसे परिवर्तित कर देता है। प्रकार रूपांतरण समय लगेगा: सही प्रकार पासिंग पीएचपी कुछ अन्य प्रकार से परिवर्तित आप के लिए होने से तेज है।
प्रकार घोषणाओं दोहराया जा सकता से बचने प्रकार रूपांतरण
आप प्रकार घोषणाओं का उपयोग करते हैं, सख्त टाइपिंग के साथ है या नहीं, आप आमतौर पर एक ही मूल्य के लिए दोहराया प्रकार रूपांतरण से बचें।
आम तौर पर, यदि आपके पास ऐसा कोई फ़ंक्शन है जो कई संख्या संचालन करता है, और आप एक स्ट्रिंग तर्क में गुजरते हैं, तो PHP को इसे प्रत्येक बार ऑपरेशन करने के लिए उचित संख्या प्रकार (int या float) में परिवर्तित करना होगा।
लेकिन अगर आप उस कथन पर एक प्रकार घोषणा की है, यह केवल एक बार परिवर्तित हो जाता है, या तो स्वत: (कमजोर टाइपिंग मोड) या यह है क्योंकि आप स्पष्ट रूप से परिवर्तित अपने आप को।
प्रकार घोषणाओं प्रकार-जांच
प्रकार घोषणाओं अपने PHP क्रम गारंटी देता है कि यह कभी कभी प्रकार चेकों यह अन्यथा करना है से बचने के लिए उपयोग कर सकते हैं दे छिपाना को पीएचपी सक्षम करें। ,
$a = $b * $c;
प्रकार घोषणाओं के बिना
पीएचपी पहले $b
और $c
इससे पहले कि यह वास्तव में उन्हें गुणा कर सकते हैं पर एक आंतरिक प्रकार की जांच करने के लिए किया है, उदाहरण के लिए, निम्न कोड पंक्ति ले PHP को यह सुनिश्चित करने की ज़रूरत है कि वे दोनों प्रकार के हैं, यदि वे नहीं हैं, तो उन्हें परिवर्तित करें, और उसके बाद उचित प्रकार के गुणा (int
× int
, float
× int
इत्यादि) को निष्पादित करें।
लेकिन अगर आपने पहले से $b
और $c
के प्रकार घोषित किए हैं, तो PHP को उन्हें यहां जांचने की आवश्यकता नहीं है, और तुरंत वास्तविक गुणा कर सकते हैं। यह तेज़ है। यह विशेष रूप से सच है यदि आप फ़ंक्शन के अंदर इन चर के साथ कई संचालन करते हैं।
ओपेकैच का उपयोग करते समय यह अनुकूलन PHP 7.1 में लागू किया गया है।
तर्क और छुटकारा मूल्य प्रकार चेक से छुटकारा पाने के लिए भी इसी तरह के अनुकूलन लागू किए जा सकते हैं। उदाहरण के लिए, यदि एक फ़ंक्शन पैरामीटर घोषित करता है तो एक int है, फिर उसके प्रकार को फिर से जांचने की आवश्यकता नहीं है, यदि वह उस तर्क को किसी अन्य फ़ंक्शन पर पास करता है जो एक int की अपेक्षा करता है। PHP 7.1 वर्तमान में कुछ अनावश्यक रिटर्न प्रकार चेक (और ओपेकैच का उपयोग करते समय अधिक) को छोड़ सकता है, लेकिन तर्क प्रकार चेक नहीं।
इन प्रकार के अनुकूलन के कारण, प्रकार की घोषणाओं के साथ कोड के लिए प्रदर्शन जुर्माना छोटा हो रहा है, और भविष्य में कोड के बिना कोड की घोषणा के साथ कोड के लिए काफी संभावना है।
प्रकार संकेतों का एक बड़ा हिस्सा यह है कि वे प्रोग्रामर * के लिए एक सहायता * हैं। सही उपकरण (बुद्धिमान आईडीई, स्थिर प्रकार चेकर्स) के साथ, आप अपने कोड को चलाने से पहले त्रुटियों की पूरी कक्षाओं से बच सकते हैं। चूंकि PHP आमतौर पर समय से पहले संकलित नहीं होता है, इसलिए संभवतया एक स्थिर संकलक के रूप में कई प्रदर्शन सुधार नहीं होंगे। – deceze