2013-03-13 3 views

उत्तर

34

पहले एक छोटा एफवाईआई, सिम्फनी के साथ इसका कोई संबंध नहीं है - ऐसा होता है कि सिम्फनी 2 namespaces का उपयोग करता है।

नामस्थानों का उपयोग नहीं करते समय, datetime class हमेशा new DateTime() के माध्यम से उपलब्ध है - ऐसा इसलिए है क्योंकि आप पहले से ही "रूट" नामस्थान में हैं। हालांकि, जब आप नेमस्पेस का उपयोग कर रहे हैं, तो बस new DateTime() का उपयोग न करें क्योंकि यह वर्तमान नामस्थान में उस कक्षा की तलाश करेगा। उदाहरण:

<?php 

namespace MyApp\Component; 

class Something 
{ 
    function __construct() 
    { 
     $dt = new DateTime(); 
    } 
} 

यह एक त्रुटि (जैसे Class 'MyApp\Component\DateTime' not found in ...) का कारण होगा क्योंकि दिनांक समय नामित MyApp\Component नाम स्थान के भीतर कोई वर्ग है वहाँ।

यही कारण है कि आपको \DateTime() मिला, यह दुभाषिया को DateTime वर्ग के लिए "रूट" (?) नामस्थान में देखने के लिए कह रहा है। अपनी स्क्रिप्ट के शीर्ष कैसा लगेगा - -

तुम भी DateTime वर्ग आयात करने के लिए use कीवर्ड का उपयोग कर सकते तुम सिर्फ new DateTime() कॉल करने के लिए अनुमति देता है: के रूप में अन्य ने कहा कि

<?php 

namespace MyApp\Component; 

use \DateTime; 
+0

बहुत बढ़िया! धन्यवाद .. –

+0

आप अपनी कक्षा में 'डेटटाइम का उपयोग' भी जोड़ सकते हैं, फिर बस 'नया डेटटाइम()', इस प्रकार आप नाम के लिए नामित कक्षाओं को दूसरों के उपयोग के लिए तैयार करते हैं। – catchamonkey

+0

@catchamonkey सच। मैं इसे उत्तर में जोड़ दूंगा। – Prisoner

1

\ DateTime एक नामांकित दिनांक समय कक्षा है। शायद उस फ़ाइल के शीर्ष पर कहीं भी है जिसे आप देख रहे हैं जिसका उपयोग \ X \ X मंदी है। \ दिनांक समय कहीं भी सुलभ आप उपयोग घोषणा कर सकते हैं \ X \ एक्स

3

देखें http://www.php.net/manual/en/language.namespaces.global.php

तुम भी फ़ाइल के शीर्ष पर एक namespace X\Y; देखना चाहिए होना चाहिए, \DateTime मतलब यह है कि वर्ग DateTime वैश्विक से लिया जा रहा है X\Y के बजाय नामस्थान।

i.e this DateTime

+0

\ दिनांक समय मतलब है कि यह वर्तमान नाम स्थान में नहीं है। यह "मूल" नामस्थान में है। – Prisoner

+0

धन्यवाद, @ प्रिज़नर, मेरी सलाह अब सही होनी चाहिए – Ivo

2

, यह ग्लोबल नेम स्पेस को संदर्भित , और दिनांक समय php में एकीकृत है, यहाँ देखो: http://www.php.net/manual/en/class.datetime.php ताकि आप इसे सिम्फोनी में न केवल उपयोग कर सकते हैं;)