我不确定这是否可能,或者这是否是发布此类问题的正确位置,但这里有效!
有没有办法用同名的类自动加载变量?一个例子:
class MyClass
{
....
function display() { echo 'test'; }
}
我想知道是否可以执行以下操作:
$MyClass->display();
之前没有在$ MyClass变量中创建MyClass类的实例。
正如我所说,我不确定这是否可行,如果这不是这个问题的正确位置,我将很乐意删除我的帖子。
UPDATE 感谢所有回复的人,我想的越多,在阅读你的评论后,我意识到这不是一个好主意,真的不实用。
由于
答案 0 :(得分:2)
我认为你应该采取不同的方法,并使用静态方法。
class MyClass
{
....
static function display() { echo 'test'; }
}
MyClass::display();
您只能使用相同的函数执行此操作,无论该类的哪个实例。您的示例是静态方法,因为该函数将始终返回test
。如果函数必须使用实例变量或方法,那么就不能使用它。
答案 1 :(得分:1)
我想你想要static class/function。你可以做MyClass::display();
。
答案 2 :(得分:0)
使其成为一种静态方法。您不需要创建类的实例来调用静态方法。
class foo {
private static $test;
public static function test() {
echo 'test';
}
}
然后将其调用为:
foo::test();
答案 3 :(得分:0)
你可以做的是制作方法static
并直接在课堂上调用方法:
class MyClass
{
public static function display() { echo 'test'; }
}
MyClass::display();
除此之外:“自动加载”变量是不可能的。