Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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,我在目录Main中有文件index.php 在类Helper的Main中还有目录Helper 我试图在index.php中注入类Helpers\Helper,如下所示: <? namespace Program; use Helpers\Helper; class Index { public function __construct() { $class = new Helper(); } } 根据您的描述,您的目录结构应该类似于以

我在目录
Main
中有文件
index.php

在类
Helper
Main
中还有目录
Helper

我试图在
index.php
中注入类
Helpers\Helper
,如下所示:

<?

namespace Program;

use Helpers\Helper;


class Index {

    public function __construct()
    {
        $class = new Helper();
    }

}

根据您的描述,您的目录结构应该类似于以下内容:

如果您按照PSR-4标准的规定执行,您的类定义可能与下面所示的类定义类似:

Index.php

    <?php
        // FILE-NAME: Index.php.
        // LOCATED INSIDE THE "Main" DIRECTORY
        // WHICH IS PRESUMED TO BE AT THE ROOT OF YOUR APP. DIRECTORY

        namespace Main;            //<== NOTICE Main HERE AS THE NAMESPACE...

        use Main\Helpers\Helper;   //<== IMPORT THE Helper CLASS FOR USE HERE   

        // IF YOU ARE NOT USING ANY AUTO-LOADING MECHANISM, YOU MAY HAVE TO 
        // MANUALLY IMPORT THE "Helper" CLASS USING EITHER include OR require
        require_once __DIR__ . "/helpers/Helper.php";

        class Index {

            public function __construct(){
                $class = new Helper();
            }

        }
    <?php
        // FILE NAME Helper.php.
        // LOCATED INSIDE THE "Main/Helpers" DIRECTORY


        namespace Main\Helpers;     //<== NOTICE Main\Helpers HERE AS THE NAMESPACE...


        class Helper {

            public function __construct(){
                // SOME INITIALISATION CODE
            }

        }

但它不起作用。具体如何?Phpstorms以红色突出显示此
使用
未定义的命名空间
帮助程序
我仍然收到错误:
索引中的
中未找到类'Main\Helpers\Helper'
在名称空间之前,您必须找到一种方法,要么自动加载该类,要么使用require或include手动要求该类。。。。更新后的帖子反映了….@MisterPi就在:
require\u once\uuu DIR\uuu。“/helpers/Helper.php”
Index.php
文件的顶部。。。。就在名称空间声明之后…如果我做了
require\u一次
我需要使用
use
做什么?
    <?php
        // FILE NAME Helper.php.
        // LOCATED INSIDE THE "Main/Helpers" DIRECTORY


        namespace Main\Helpers;     //<== NOTICE Main\Helpers HERE AS THE NAMESPACE...


        class Helper {

            public function __construct(){
                // SOME INITIALISATION CODE
            }

        }