我有一個問題,我試圖從另一個文件中的類調用方法。我已經完成了:當我嘗試在我的函數中使用它時,這顯示了該類,甚至顯示了我試圖在testName文件中調用的函數。但是,當我嘗試僅運行PHP文件時,我收到此錯誤:use Tests\Feature\testNameUncaught Error: Class 'Tests\Feature\testName' not found in path\to\file我對為什么它不起作用有點困惑,如果有人能解釋為什么會這樣,我將不勝感激!:)
1 回答
翻閱古今
TA貢獻1780條經驗 獲得超5個贊
在 PHP 中,類不僅僅使用指令即可包含在內。您需要通過包含類所在的文件來加載它們。use
有什么用?(哈哈)use
use讓您不使用您正在使用的類的 FQDN,請參閱下面的代碼段:
use \A\Long\Namespace\Foo;
$foo = new Foo();
// Without use, you would have needed : $foo = new \A\Long\Namespace\Foo();
無聊的方式
這就是PHP開發人員多年前過去的做法,它只是明確要求文件:
// Foo.php
class Foo {}
// index.php
require_once( __DIR__ . '/Foo.php');
$foo = new Foo();
正常方式
現在,人們使用自動加載帶有模式的類的代碼,您可以使用Composer(其中包括,不會在此處輸入基于意見的討論),或者,如果您的項目很小并且您不想使用它,因為您對它沒有信心,請手動加載您的類。例如,將所有類放在一個文件夾中,并使用與類相同的名稱命名文件,然后可以使用以下代碼段:class
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});
要加載所需的所有類(您可能希望將其放在PHP代碼的開頭)。
- 1 回答
- 0 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消
