0
<?php
namespace foo;
use My\Full\Classname as Another;

// this is the same as use My\Full\NSname as NSname
use My\Full\NSname;

// importing a global class
use ArrayObject;

$obj = new namespace\Another; // instantiates object of class foo\Another
$obj = new Another; // instantiates object of class My\Full\Classname
NSname\subns\func(); // calls function My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // instantiates object of class ArrayObject
// without the "use ArrayObject" we would instantiate an object of class foo\ArrayObject
?> 

これで私を助けてください。

とはどういう意味ですか?use My\Full\Classname as Another;

4

1 に答える 1

1

それはエイリアスです。Another(相対) 名前空間またはクラス名として参照するたびに、それは次のように解決されます。\My\Full\Classname

$x = new Another;
echo get_class($x); // "\My\Full\Classname"
$y = new Another\Something;
echo get_class($y); // "\My\Full\Classname\Something"

名前空間区切り文字で始まる識別子\は、完全修飾名です。欠落している場合、識別子は現在の名前空間に対して、およびによって定義されたエイリアス定義に対してuse(この順序で) 解決されます ( および の識別子を除くuse:namespaceそれらは常に完全修飾されています)。

PHP-マニュアル: 名前空間

于 2012-06-25T06:02:36.913 に答える