我有两个类,A类和B类,在A类中的函数中,我想调用B中的函数,但它也需要另一个文件中的常量。在需要config.php和classB.php文件之后,我能够创建类B的实例,但是当我试图调用B中的函数时,它给了我一个警告,说常量尚未定义。
在config . php:$constant = 'blah';
在A类中,我有:
function functionA() {
require_once "config.php";
require_once "classB.php";
$b = new B();
$b -> functionB($constant);
}
函数B的调用给出了一个错误,说$constant没有定义,但是当我调用new B()时没有问题。我做错了什么吗?
Aron是正确的。在这种情况下,您想使用include
或require
。你必须确保你所包含的文件中没有函数或类声明。
之所以会发生这种情况,是因为require不会在每次调用该方法时都发生,只在第一次调用时发生。后续对该方法的调用将导致未定义变量错误。
附加提示:您可以从包含的文件返回值,将它们直接赋值给变量
A.php:
return 'abc';
B.php:
Class B {
public static function load()
{
$x = include 'A.php';
var_dump($x);
}
}
我想象你的代码应该是这样的:
function functionA() {
require "config.php";
require_once "classB.php";
$b = new B();
$b -> functionB($constant);
}
使用语句include 'config.php';
如果你的config.php文件只有变量声明,