मैं किसी और द्वारा लिखे गए कोड को देख रहा हूं और यह इस तरह से एक सरणी घोषित करता है (जो मुझे लगता है कि अभी भी एक स्ट्रिंग है, क्या कोई पुष्टि कर सकता है)।

$array = "Label 1" . "~/" . "Label 2" . "~/" . "Label 3" . "~/" . "Label4";

फिर बाद में कोड में, यह ऐसा करता है

split('~/', $array);

क्या कोई वैध कारण है कि कोई ऐसा क्यों करेगा? मैं आमतौर पर इसे शुरुआत से एक सरणी के रूप में घोषित करता हूं।

0
sameold 3 अक्टूबर 2011, 08:36

4 जवाब

सबसे बढ़िया उत्तर

न्याय के बजाय इस तरह से काम करने का कोई बचाव योग्य कारण नहीं है

$array = Array("Label 1", ... , "Label 4");

वास्तव में यह करने का यह एक बहुत बुरा तरीका है, जब तक कि आप गारंटी नहीं दे सकते कि स्ट्रिंग "~/" सरणी के तत्वों में कभी नहीं दिखाई देगी।

6
Niet the Dark Absol 3 अक्टूबर 2011, 08:40

ऐसा करने वाले किसी के बारे में सोचने का एकमात्र कारण यह है कि यदि वे बाद में $array को टेक्स्ट फ़ाइल में सहेजना चाहते हैं, उदाहरण के लिए कुछ एप्लिकेशन सेटिंग्स को PHP फ़ाइल में सहेजना चाहते हैं। लेकिन वे अभी भी एक सरणी को सामान्य तरीके से परिभाषित करने और फिर इंपोड का उपयोग करने के लिए बेहतर होते, क्योंकि अन्य ने पहले ही उल्लेख किया है कि यह अभी भी सबसे अच्छा विचार नहीं है और इसमें समस्याएं हैं।

3
row1 3 अक्टूबर 2011, 08:46

परिवर्तनीय $array में, यह अभी भी एक स्ट्रिंग है, बस इस तरह:

$array = "Label 1~/Label 2~/Label 3~/Label4";

लेकिन इसके बाद कुछ ऐसा करें

$realArray = split("~/",$array);

यह एक सरणी बन जाएगा।

अगर कोई ऐसा करने वाले सरणी को बनाने के बारे में जानता है, तो मुझे लगता है कि वह बाद में उपयोग के लिए इस स्ट्रिंग को सहेजना चाहता है। लेकिन ऐसा करने का एक बेहतर तरीका है

$array = array("Label 1","Label 2","Label 3","Label 4");
$string = implode("~/",$array);

तो, बस इसे भूल जाओ और सामान्य तरीके से प्रयोग करें।

3
mineschan 3 अक्टूबर 2011, 08:55

यह करने का यह एक भयानक तरीका है।

  • array() परिभाषा पर यह तुरंत स्पष्ट नहीं है कि कोड क्या करता है, जिसे तुरंत पहचाना जाएगा।
  • split() पदावनत कर दिया गया है।
  • आपको याद रखना चाहिए कि "~/" जादू है।
  • एक कोड शैली में पठनीयता के लिए स्ट्रिंग संयोजन जो पठनीयता में बाधा डालता है।

वास्तव में, आपको इसे छोड़ देना चाहिए और array('Label 1', ...) का उपयोग करना चाहिए।

2
alex 3 अक्टूबर 2011, 08:45