如果它们在另一个 php 文件中,则不能调用它们?

Posted

技术标签:

【中文标题】如果它们在另一个 php 文件中,则不能调用它们?【英文标题】:Can't call classes if they are in another php file? 【发布时间】:2013-07-17 02:39:38 【问题描述】:

我正在尝试调用所需文件中的类,但出现错误

php Fatal error:  Class 'SampleClass' not found in /home2/domain/public_html/website/v2/wp-content/plugins/myplugin.php on line 23

我可以判断该文件是正确需要的,因为我在其中回显了一些文本并显示出来。我正在使用 Wordpress - Wordpress 有什么奇怪的地方会阻止它工作吗?

只要我将类复制到原始文件中(而不是从其他地方包含它),它就可以正常工作。

有什么想法吗?如果需要,可以提供更多信息,但我反对在此处复制代码,因为它几乎无关紧要。

【问题讨论】:

请尝试 print_r(get_declared_classes()); require() 之前和之后 在 require 之前和之后有完全相同数量的类 (366),但我在所需文件中的 echo "test" 显示在它们之间(require 所在的位置) 我们可以看到包含的文件吗? 是这个sourceforge.net/projects/codebird-php.codebird.p/?source=dlp 但我已经把echo "test";在命名空间声明下方。 我认为@fsw 是正确的。在引用它时,您可能需要在类前面加上命名空间 Namespace\SampleClass; 或使用 PHP 中的 Use 函数。 【参考方案1】:

要使用该类,您必须在类名前加上命名空间,例如:-

代替:

新的 Codebird;

你会写:

新的 Codebird\Codebird;

【讨论】:

以上是关于如果它们在另一个 php 文件中,则不能调用它们?的主要内容,如果未能解决你的问题,请参考以下文章

从不同文件添加项目并使用数组列表将它们存储在另一个文件中

为啥我不能在另一个类中调用公共方法?

如果在另一个数据框中确实存在,则删除行 - python pandas

在apache中-每次调用php文件时都会从磁盘读取它们吗?

在另一个文件中导出,在同一个文件中调用[重复]

使用 PHP 调整 JPG 大小的内存错误