include_once工作,但USE关键字不能在php中工作

时间:2017-10-05 06:33:37

标签: php

我有ClsMapping类。当我使用

include_once('Folder/ClsMapping.php'); 

它有效,但是当我使用

use Folder/ClsMapping 
$obj = new ClsMapping();
$obj->a();

它不起作用。我也在ClsMapping.php文件中定义了命名空间 在ClsMapping.php中

namespace Folder;
class ClsMapping{
   function a(){
   }
}

我怎么能让它运作起来?任何帮助都会很棒。

错误

Fatal error: Class 'ClsMapping' not found in E:\xampp\htdocs\ppm2.0\elastic\ClsSearchElastic.php on line 247

2 个答案:

答案 0 :(得分:0)

我不确定,但我想问题是" ClsMapping.php",没有命名空间,或者现有命名空间是错误的。
可以肯定的是,去你的班级" ClsMapping.php",然后在php标签之后编写你的命名空间(例如" namespace Folder;")。
之后,您可以使用文件夹/ ClsMapping"没有问题。

答案 1 :(得分:0)

使用不包含任何内容。它只是将指定的命名空间(或类)导入当前范围

read this

不要将use运算符与自动加载混淆。通过注册自动加载器(例如使用spl_autoload_register)自动加载类(无需包含)。您可能希望阅读PSR-4以查看合适的自动加载器实现。