ʹ�������ռ䣺����/����

(PHP 5 >= 5.3.0, PHP 7)

����ͨ���������û����ⲿ����ȫ�޶����ƣ��������ռ��һ����Ҫ���������е����������� unix �ļ�ϵͳ�п��Դ������������ļ���Ŀ¼�ķ������ӡ�

����֧�������ռ��PHP�汾֧�����ֱ������뷽ʽ��Ϊ������ʹ�ñ�����Ϊ�ӿ�ʹ�ñ�����Ϊ�����ռ�����ʹ�ñ�����PHP 5.6��ʼ�����뺯����������Ϊ�������ñ�����

��PHP�У�������ͨ�������� use ��ʵ�ֵ�. ������һ��ʹ�����п��ܵ����ֵ��뷽ʽ�����ӣ�

Example #1 ʹ��use����������/ʹ�ñ���

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

// ����������� use My\Full\NSname as NSname ��ͬ
use My\Full\NSname;

// ����һ��ȫ����
use ArrayObject;

// importing a function (PHP 5.6+)
use function My\Full\functionName;

// aliasing a function (PHP 5.6+)
use function My\Full\functionName as func;

// importing a constant (PHP 5.6+)
use const My\Full\CONSTANT;

$obj = new namespace\Another// ʵ���� foo\Another ����
$obj = new Another// ʵ���� My\Full\Classname������
NSname\subns\func(); // ���ú��� My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // ʵ���� ArrayObject ����
// �����ʹ�� "use \ArrayObject" ����ʵ����һ�� foo\ArrayObject ����
func(); // calls function My\Full\functionName
echo CONSTANT// echoes the value of My\Full\CONSTANT
?>
ע��������ռ��е����ƣ����������ռ�ָ�������ȫ�޶������� Foo\Bar�Լ���ԵIJ����������ռ�ָ�����ȫ�������� FooBar����˵��ǰ���ķ�б���Dz���Ҫ��Ҳ���Ƽ��ģ���Ϊ��������Ʊ�������ȫ�޶��ģ�������ݵ�ǰ�������ռ�����Խ�����

Ϊ�˼򻯲�����PHP��֧����һ����ʹ�ö��use���

Example #2 ͨ��use����������/ʹ�ñ�����һ���а������use���

<?php
use My\Full\Classname as AnotherMy\Full\NSname;

$obj = new Another// ʵ���� My\Full\Classname ����
NSname\subns\func(); // ���ú��� My\Full\NSname\subns\func
?>

����������ڱ���ִ�еģ�����̬�������ơ��������ƻ����������ǡ�

Example #3 ����Ͷ�̬����

<?php
use My\Full\Classname as AnotherMy\Full\NSname;

$obj = new Another// ʵ����һ�� My\Full\Classname ����
$a 'Another';
$obj = new $a;      // ʵ�ʻ�һ�� Another ����
?>

���⣬�������ֻӰ����޶����ƺ��޶����ơ���ȫ�޶�����������ȷ���ģ��ʲ��ܵ����Ӱ�졣

Example #4 �������ȫ�޶�����

<?php
use My\Full\Classname as AnotherMy\Full\NSname;

$obj = new Another// instantiates object of class My\Full\Classname
$obj = new \Another// instantiates object of class Another
$obj = new Another\thing// instantiates object of class My\Full\Classname\thing
$obj = new \Another\thing// instantiates object of class Another\thing
?>

Scoping rules for importing

The use keyword must be declared in the outermost scope of a file (the global scope) or inside namespace declarations. This is because the importing is done at compile time and not runtime, so it cannot be block scoped. The following example will show an illegal use of the use keyword:

Example #5 Illegal importing rule

<?php
namespace Languages;

class 
Greenlandic
{
    use 
Languages\Danish;

    ...
}
?>

Note:

Importing rules are per file basis, meaning included files will NOT inherit the parent file's importing rules.