Implementuję przestrzenie nazw w moim istniejącym projekcie. Zauważyłem, że możesz użyć słowa kluczowego "użyj" do zaimportowania klas do swojej przestrzeni nazw. Moje pytanie brzmi: czy mogę również zaimportować wszystkie klasy z jednej przestrzeni nazw do drugiej. Przykład:PHP, jak zaimportować wszystkie klasy z innej przestrzeni nazw
namespace foo
{
class bar
{
public static $a = 'foobar';
}
}
namespace
{
use \foo; //This doesn't work!
echo bar::$a;
}
Aktualizacja PHP 7+
Nowością PHP 7 są pogrupowane zgłoszenia. To nie robi to tak proste, jak przy użyciu 1 „oświadczenie użycia” dla wszystkich klas w danej przestrzeni nazw, ale sprawia, że nieco łatwiej ...
Przykładowy kod:
<?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};
?>
Patrz także: https://secure.php.net/manual/en/migration70.new-features.php#migration70.new-features.group-use-declarations
pamiętajcie, że „importu” nie oznacza, że rzeczywiście można znaleźć tej klasy. Nadal musisz mieć tę klasę dostępną za pomocą instrukcji manualnej lub autoloadera. – Nanne
Oczywiście, ale nie wiem, jak wyrazić to innymi słowami. – Rob
Tak myślałem, ale żeby uniknąć nieporozumień :) – Nanne