2011-08-19 11 views
48

मैं अपने मौजूदा प्रोजेक्ट में नामस्थान लागू कर रहा हूं। मैंने पाया कि आप अपने नामस्थान में कक्षाओं को आयात करने के लिए कीवर्ड 'उपयोग' का उपयोग कर सकते हैं। मेरा सवाल है, क्या मैं 1 कक्षाओं से दूसरे वर्गों में सभी कक्षाएं भी आयात कर सकता हूं। उदाहरण: पीएचपी 7+PHP किसी अन्य नामस्थान से सभी वर्गों को आयात करने के लिए कैसे करें

एक नई सुविधा पीएचपी 7 में के लिए

namespace foo 
{ 

    class bar 
    { 

     public static $a = 'foobar'; 

    } 

} 

namespace 
{ 
    use \foo; //This doesn't work! 
    echo bar::$a; 
} 

अद्यतन घोषणाओं वर्गीकृत किया जाता है। इसमें दिए गए नाम स्थान में सभी वर्गों के लिए 1 'उपयोग बयान' का उपयोग कर के रूप में इतना आसान बनाना नहीं है, लेकिन यह कुछ हद तक आसान बना देता है ...

उदाहरण कोड:

<?php 
// Pre PHP 7 code 
use some\namespace\ClassA; 
use some\namespace\ClassB; 
use some\namespace\ClassC as C; 

// PHP 7+ code 
use some\namespace\{ClassA, ClassB, ClassC as C}; 
?> 

भी देखें: https://secure.php.net/manual/en/migration70.new-features.php#migration70.new-features.group-use-declarations

+1

मन आपको लगता है कि "आयात" मतलब यह नहीं है कि आप वास्तव में उस वर्ग पा सकते हैं। आपको अभी भी उस क्लास को या तो मैन्युअल आवश्यकता या ऑटोलोडर की आवश्यकता है। – Nanne

+1

संभोग, लेकिन मुझे नहीं पता कि इसे दूसरे शब्दों में कैसे रखा जाए। – Rob

+0

मैंने ऐसा सोचा, लेकिन भ्रम से बचने के लिए :) – Nanne

उत्तर

53

PHP में यह संभव नहीं है।

आपको बस इतना कर सकते हैं:

namespace Foo; 

use Bar; 

$obj = new Bar\SomeClassFromBar(); 
+7

ठीक है धन्यवाद, बहुत बुरा ... – Rob

+2

या निश्चित रूप से, आप उपयोग खंड में ठोस कक्षाएं डाल सकते हैं। ('बार \ SomeClassFromBar का उपयोग करें; $ obj = new SomeClassFromBar();') –

+8

ओह नहीं, PHP यह क्यों प्रदान नहीं करता है ... –

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