Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在非空间类中使用名称空间?_Php - Fatal编程技术网

Php 如何在非空间类中使用名称空间?

Php 如何在非空间类中使用名称空间?,php,Php,有没有办法在非命名空间类中使用命名空间类 例如: // Note class A and B have no namespaces... class A extends B { public function do() { $obj = new My\Namespace\SomeObject(); return $obj; } } 谢谢。您应该添加全局前缀运算符,以将您的限定名填写为完全限定名: 您应该添加全局前缀运算符,以将限定名称填写为完全限定名称: 您应该添加全局前缀

有没有办法在非命名空间类中使用命名空间类

例如:

// Note class A and B have no namespaces...
class A extends B {

 public function do() {
   $obj = new My\Namespace\SomeObject();
   return $obj;
 }

}

谢谢。

您应该添加全局前缀运算符,以将您的限定名填写为完全限定名:


您应该添加全局前缀运算符,以将限定名称填写为完全限定名称:


您应该添加全局前缀运算符,以将限定名称填写为完全限定名称:


您应该添加全局前缀运算符,以将限定名称填写为完全限定名称:

只需使用操作员:

<?php

use My\Namespace\SomeObject;

class A extends B 
{
    public function do()
    {
        $obj = new SomeObject();
        return $obj;
    }
}
注意前面的反斜杠

编辑

仔细检查后,我还想提出以下几点:

  • 根据@hakre的注释-如果您在全局命名空间中(这是默认/隐式命名空间,因为实际上没有非命名空间),那么您不需要前导反斜杠

  • 使用
    名称空间
    是一个语法错误,因为它是一个保留字(在PHP中大小写并不重要,因为包括类、方法和函数名在内的许多关键字都不区分大小写)

  • 使用
    do
    是一个语法错误,因为它也是一个保留字(
    do/while
    控制结构)

  • 只需使用操作员:

    <?php
    
    use My\Namespace\SomeObject;
    
    class A extends B 
    {
        public function do()
        {
            $obj = new SomeObject();
            return $obj;
        }
    }
    
    注意前面的反斜杠

    编辑

    仔细检查后,我还想提出以下几点:

  • 根据@hakre的注释-如果您在全局命名空间中(这是默认/隐式命名空间,因为实际上没有非命名空间),那么您不需要前导反斜杠

  • 使用
    名称空间
    是一个语法错误,因为它是一个保留字(在PHP中大小写并不重要,因为包括类、方法和函数名在内的许多关键字都不区分大小写)

  • 使用
    do
    是一个语法错误,因为它也是一个保留字(
    do/while
    控制结构)

  • 只需使用操作员:

    <?php
    
    use My\Namespace\SomeObject;
    
    class A extends B 
    {
        public function do()
        {
            $obj = new SomeObject();
            return $obj;
        }
    }
    
    注意前面的反斜杠

    编辑

    仔细检查后,我还想提出以下几点:

  • 根据@hakre的注释-如果您在全局命名空间中(这是默认/隐式命名空间,因为实际上没有非命名空间),那么您不需要前导反斜杠

  • 使用
    名称空间
    是一个语法错误,因为它是一个保留字(在PHP中大小写并不重要,因为包括类、方法和函数名在内的许多关键字都不区分大小写)

  • 使用
    do
    是一个语法错误,因为它也是一个保留字(
    do/while
    控制结构)

  • 只需使用操作员:

    <?php
    
    use My\Namespace\SomeObject;
    
    class A extends B 
    {
        public function do()
        {
            $obj = new SomeObject();
            return $obj;
        }
    }
    
    注意前面的反斜杠

    编辑

    仔细检查后,我还想提出以下几点:

  • 根据@hakre的注释-如果您在全局命名空间中(这是默认/隐式命名空间,因为实际上没有非命名空间),那么您不需要前导反斜杠

  • 使用
    名称空间
    是一个语法错误,因为它是一个保留字(在PHP中大小写并不重要,因为包括类、方法和函数名在内的许多关键字都不区分大小写)

  • 使用
    do
    是一个语法错误,因为它也是一个保留字(
    do/while
    控制结构)



  • 可能与示例代码的错误重复?不可能吗?我认为你的例子很好。啊。。。刚刚注意到一件事,
    do
    在PHP中是一个保留字,因为它是一个控制结构,所以它可能一文不值。这将在任何情况下(至少,只要类A在全局名称空间中)都会导致OP出现问题。示例代码中可能存在的问题是什么?不可能吗?我认为你的例子很好。啊。。。刚刚注意到一件事,
    do
    在PHP中是一个保留字,因为它是一个控制结构,所以它可能一文不值。这将在任何情况下(至少,只要类A在全局名称空间中)都会导致OP出现问题。示例代码中可能存在的问题是什么?不可能吗?我认为你的例子很好。啊。。。刚刚注意到一件事,
    do
    在PHP中是一个保留字,因为它是一个控制结构,所以它可能一文不值。这将在任何情况下(至少,只要类A在全局名称空间中)都会导致OP出现问题。示例代码中可能存在的问题是什么?不可能吗?我认为你的例子很好。啊。。。刚刚注意到一件事,
    do
    在PHP中是一个保留字,因为它是一个控制结构,所以它可能一文不值。这在任何情况下都会给OP带来问题(至少,只要类A在全局名称空间中),您也可以为该类添加别名!不要虚张声势。抱歉,如果您的答案是答案,那么问题已经是答案了,因为它在没有使用语句的情况下也起了作用。@hakre您完全正确-我更新了我的答案,还有一些其他问题值得注意,因此我想我应该添加这些问题(尽管我假设OP给出的示例纯粹是为了说明)。不管怎样,谢谢你的反馈,非常感谢。你也可以给这个班取别名。的确,你可以-很好!不要虚张声势。抱歉,如果您的答案是答案,那么问题已经是答案了,因为它在没有使用语句的情况下也起了作用。@hakre您完全正确-我更新了我的答案,还有一些其他问题值得注意,因此我想我应该添加这些问题(尽管我假设OP给出的示例纯粹是为了说明)。不管怎样,谢谢你的反馈,非常感谢。你也可以给这个班取别名。的确,你可以-很好!不要虚张声势。对不起,如果你的答案是答案,那么问题已经是答案了,因为它在没有使用状态的情况下工作了