php类未找到但导入

时间:2015-07-21 21:36:31

标签: php

我有两个文件,第一个是Test.php,它看起来像这样:

<?php
namespace My\Namespaces\Test;

class Test {
    const ALERT_EMAIL = "AlertEmail";
    const ALERT_SMS = "AlertSms";
    const ALERT_NOTIFICATION = "AlertNotification";
}  // class - EnumAlertType
?>

和另一个文件尝试使用Test.php中的const

<?php
use My\Namespaces\Test;
$a = Test::ALERT_SMS;
?>

但我仍然遇到Class 'My\Namespaces\Test' not found错误,我不确定我是否正确使用了命名空间。感谢

1 个答案:

答案 0 :(得分:2)

您需要在此处区分两个术语:包括导入。前者是在当前正在执行的脚本中添加代码,后者是在代码中轻松使用它们。包括litteraly复制粘贴代码到当前脚本,以便以后可以使用。

因此,您需要包含require_once())类Test的代码到将使用该代码的文件中。事实上,您之后可以导入use)(特别是如果文件位于单独的文件夹中)。因此,您需要这样做:

<?php
require_once('Test.php'); // include the code
use My\Namespaces\Test; // import it if you want but not useful as the two file are in the same folder
$a = Test::ALERT_SMS; // access to class constants

你应该开始深入研究spl_autoloader_register()功能。