(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
?>
Ϊ�˼�����PHP��֧����һ����ʹ�ö��use���
Example #2 ͨ��use����������/ʹ�ñ�����һ���а������use���
<?php
use My\Full\Classname as Another, My\Full\NSname;
$obj = new Another; // ʵ���� My\Full\Classname ����
NSname\subns\func(); // ���ú��� My\Full\NSname\subns\func
?>
����������ڱ���ִ�еģ�����̬�������ơ��������ƻ����������ǡ�
Example #3 ����Ͷ�̬����
<?php
use My\Full\Classname as Another, My\Full\NSname;
$obj = new Another; // ʵ����һ�� My\Full\Classname ����
$a = 'Another';
$obj = new $a; // ʵ�ʻ�һ�� Another ����
?>
���⣬�������ֻӰ��������ƺ������ơ���ȫ������������ȷ���ģ��ʲ��ܵ����Ӱ�졣
Example #4 �������ȫ������
<?php
use My\Full\Classname as Another, My\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
?>
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.