2011-01-13 14 views
9

यदि वे डिफ़ॉल्ट रूप से सार्वजनिक हैं तो कीवर्ड public का उपयोग करके कक्षा गुण (चर) या विधियों (फ़ंक्शंस) को क्यों घोषित करना चाहिए? या क्या वे?PHP कक्षाएं सार्वजनिक कीवर्ड का उपयोग क्यों करती हैं?

मेरे प्रश्न को अलग-अलग वाक्यांश के लिए, public अनावश्यक है? मैं private और protected समझता हूं, लेकिन public क्यों घोषित करता है यदि वर्ग के सदस्य वैसे भी सार्वजनिक हैं?

उत्तर

7

हां, public डिफ़ॉल्ट है (देखें visibility docs)।

लोग इसे जोड़ते हैं, इसलिए यह अन्य सभी विधियों/गुणों के अनुरूप है।

इसके अलावा, यदि आप एक संपत्ति सार्वजनिक घोषित करना चाहते हैं और public का उपयोग नहीं करना चाहते हैं तो आपको var का उपयोग करने की आवश्यकता होगी, जिसे अनुशंसित नहीं किया गया है और संभवतः किसी बिंदु पर बहिष्कृत किया जाएगा।

+0

गुणों के लिए, ठीक है। लेकिन आजकल वास्तव में सार्वजनिक संपत्तियों की आवश्यकता कौन है? सार्वजनिक तरीकों के लिए, यह सम्मेलन का मामला है (उदाहरण के लिए पीएसआर -2), जो परिचितता और अंतःक्रियाशीलता के लिए अच्छा है। लेकिन कोई तकनीकी लाभ नहीं है। और, मैं तर्क दूंगा, यह पठनीयता में सुधार नहीं करता है, अगर आपका दिमाग पहले से ही सार्वजनिक कीवर्ड देखने के लिए उपयोग नहीं किया जाता है। – donquixote

2

निश्चित रूप से यह अनावश्यक है क्योंकि यह डिफ़ॉल्ट दृश्यता स्तर है। जब आप कर सकते हैं तो आपको उनसे बचना चाहिए। कुछ लोग public कीवर्ड को स्पष्ट रूप से जोड़ते हैं ताकि कोड थोड़ा और पठनीय हो।

+1

से बचने के क्या (जो) जब मैं कर सकते हैं? – Ben

+1

@ स्टेव: मेरा मतलब है कि आप सार्वजनिक स्तर के वर्रों के लिए 'सार्वजनिक' कीवर्ड टाइपिंग को अनदेखा कर सकते हैं :) – Sarfraz

+1

@Stve 'public' कीवर्ड। – Savetheinternet

3

PHP 5.3 के रूप में (मुझे लगता है कि यह थोड़ी देर हो गया है), विभिन्न कीवर्ड का उपयोग करके E_STRICT त्रुटियां बढ़ती हैं, इसलिए ऑब्जेक्ट वायबल्स घोषित करने के लिए सार्वजनिक का उपयोग किया जाना चाहिए। कार्यों के लिए, मेरा मानना ​​है कि यह एक स्थिरता की बात है।

+0

नहीं, यह 5.0 और 5.13 (दस्तावेज़ के अनुसार) के बीच E_STRICT उठाया। लेकिन उन्होंने नोटिस गिरा दिया। – NikiC

+0

ओह सच में? सर उठाने के लिए धन्यवाद। मुझे कभी एहसास नहीं हुआ कि यह वापस बदला गया था – Travis

2

कोई तकनीकी public लेकिन एक दृश्यता कीवर्ड सभी कार्यों पर PSR-2 के लिए आवश्यक है, इसलिए यदि आप का पालन करने के PSR-2 तो आप इसका इस्तेमाल करना चाहिए चाहते हैं का उपयोग करने के कारण है:

4,3। तरीके

दृश्यता सभी विधियों पर घोषित की जानी चाहिए।

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#43-methods

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

  • कोई संबंधित समस्या नहीं^_^