• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php使用别名和导入

php 搞代码 4年前 (2022-01-23) 18次浏览 已收录 0个评论

允许通过别名引用或导入外部的完全限定名称,是命名空间的一个重要特征。这有点类似于在类 unix 文件系统中可以创建对其它的文件或目录的符号连接。

PHP 命名空间支持有两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名。注意PHP不支持导入函数或常量。

在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;    $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 对象?>

注意对命名空间中的名称(包含命名空间分隔符的完全限定名称如 Foo\Bar以及相对的不包含命名空间分隔符的全局名称如 FooBar)来说,前导的反斜杠是不必要的也不允许有反斜杠,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。

为了简化操作,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?>

¥本文来源gaodai#ma#com搞@@代~&码网^搞gaodaima代码入操作是在编译执行的,但动态的类名称、函数名称或常量名称则不是。

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; // 实例化My\Full\Classname类的对象     $obj = new \Another; // 实例化Another类的对象     $obj = new Another\thing; // 实例化My\Full\Classname\thing类的对象     $obj = new \Another\thing; // 实例化Another\thing类的对象 ?>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php使用别名和导入

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址