2010-01-22 8 views
6

मैं अपने कोड को यथासंभव बनाए रखने योग्य और समझने में आसान के रूप में लिखने की कोशिश कर रहा हूं, और मैंने सोचा कि डेटा के प्रकार को एक चर के नाम पर रखा गया है।PHP - वैरिएबल नाम में डेटा प्रकार सहित वर्थ?

उदाहरण के लिए:

$intCurrentLine = 1; instead of $currentLine = 1; 
$strUser = 'blah'; instead of $user = 'blah'; 

मुझे नहीं लगता कि यह वास्तव में ऊपर के उदाहरण में आवश्यक है, लेकिन यह कुछ मामलों में सहायक हो सकता है?

  • क्या यह मेरा कोड अधिक समझने योग्य बना सकता है?
  • क्या मुझे वास्तव में इसका उपयोग करना चाहिए या "सामान्य" परिवर्तनीय नामों के साथ रहना चाहिए?
  • क्या आप स्क्रिप्ट जानते हैं जहां इसका उपयोग किया जाता है?

सादर, लामाओं

उत्तर

8

चर के नाम पर प्रकार जोड़ने को Hungarian Notation कहा जाता है।

यह PHP और VB जैसे टाइपलेस भाषाओं में शैली का विषय है। मैं उपयोग नहीं करना पसंद करता क्योंकि वास्तविक आवश्यकता नहीं है।

यह विषय पर एक अच्छा लेख है। http://www.joelonsoftware.com/articles/Wrong.html

+0

वीबी (क्लासिक और .NET दोनों) के प्रकार हैं, यह सिर्फ डिफ़ॉल्ट प्रकार जेनेरिक वेरिएंट प्रकार है। – Powerlord

+0

फिर भी संस्करण प्रकार के कारण वीबी नेट दुनिया से आया था। – Yada

1

मैं tought था कि कॉलेज के प्रोग्रामिंग कक्षाओं में है, लेकिन असली दुनिया में यह बेकार पाया। मैं बस परिवर्तनीय नाम वर्णनात्मक बनाने की कोशिश करता हूं और आमतौर पर यह बताता है कि यह किस प्रकार का है। उदाहरण के लिए firstName का अर्थ है स्ट्रिंग, या आपके मामले में currentLine का मतलब int है।

मुझे लगता है कि जब तक आप अपने नामकरण में वर्णनात्मक और सटीक हैं, पर्याप्त है।

1

यह निश्चित रूप से आपको यह जानने में सहायता करता है कि आपके चर के ctype या इसी तरह के उपयोग किए बिना डेटाटाइप क्या है।

यदि आप अपने चर नामों को देने का प्रयास करते हैं जो उनके प्रकार को स्पष्ट रूप से परिभाषित करते हैं, जैसे $userName, तो आपके पास बहुत अधिक समस्याएं नहीं होनी चाहिए।

+0

हालात पर लेने जाएगा चीजें हैं जो कम से कम समस्याओं बनाने .. सामान का Think होगा है $ userCurrent की तरह - यह एक सरणी, एक पूर्णांक या केवल एक स्ट्रिंग हो सकती है जिसमें उपयोगकर्ताओं की पृथक सूची होती है: O – lamas

+3

@lamas, जो कि उनका काफी बिंदु था। $ usersCurrent एक खराब नामित चर का एक उदाहरण है। $ currentUserCount या $ CurrentUsers डेटा का अधिक संकेतक होगा। – Langdon

1

अंगूठे का मेरा नियम यह है कि जब तक आपके चर के पास एक स्पष्ट नाम है, तब भी इसे प्रकार के साथ एनोटेट करने की आवश्यकता नहीं है।

1

इसे hungarian notation कहा जाता है और खराब अभ्यास माना जाता है।

रॉबर्ट सी मार्टिन के अनुसार, "क्लीन कोड" के लेखक, टाइप एन्कोडिंग्स "एक चर, फ़ंक्शन, या कक्षा का नाम या प्रकार बदलने के लिए कठिन बनाते हैं। वे कोड को पढ़ने में कठिन बनाते हैं। और वे संभावना है कि एन्कोडिंग सिस्टम पाठक को गुमराह करेगा। "

उनका उपयोग न करें। बुद्धिमानी से अपने चर नाम चुनें।

0

मुझे नहीं लगता कि एक चर का प्रकार समझ में आता है। मेरा सुझाव है कि आप की तरह

$currentLineNumber = 1; instead of $currentLine = 1; 
$userName = 'blah'; instead of $user = 'blah'; 

सार्थक नामों का उपयोग करना हालांकि इस मामले में $currentLine बहुत स्पष्ट इसका क्या मतलब बनाता है।

इसके विपरीत यदि मैं प्रकार जोड़ता हूं, तो यह समझना आवश्यक नहीं है कि वास्तव में चर क्या करता है, उदा। $floatNumber बनाम $numberOfStores

1

मैं हंगेरियन नोटेशन का प्रशंसक नहीं हूं। यह मेरी व्यक्तिगत राय है और मैं जानबूझ कर इस मामले में व्यक्तिपरक हूं।

Strip out hungarian notation from a PHP file

  1. यह मेरा कोड अधिक समझ में आता है कर सकते हैं?
    • नहीं, यह बेकार है
  2. मैं वास्तव में इस का उपयोग करें या "सामान्य" चर नाम के साथ रहना चाहिए?
    • स्टिक सामान्य नाम
  3. के साथ स्क्रिप्ट, जहां इस प्रयोग किया जाता है पता है?
    • हाँ, पर यह
0

कोई फर्क नहीं पड़ता आमतौर पर, मैं तार के लिए $ उत्तर उपयोग कर रहा हूँ, पूर्णांकों के लिए $ इवर, सरणियों के लिए $ Avar, आदि (जहां वार ओएफसी बदल दिया जाता है चर नाम के साथ)। यह मेरे लिए एक छोटा सा अतिरिक्त और एक बहुत स्पष्ट है।

0

आप इसे अपनी टिप्पणियों में निर्दिष्ट कर सकते हैं।

कुछ

तरह
/* 
* 
* @var string 
*/ 

$your_var = ''; 

आप एक अच्छे आईडीई यह इन बातों :) $ उपयोगकर्ता नाम पसंद

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