我不确定这是否可能,或者这是否是发布此类问题的正确位置,但这里是!
有没有任何方法可以自动加载具有相同名称的类的变量?例如:
class MyClass
{
....
function display() { echo 'test'; }
}
我想知道是否有可能做到以下几点:
$MyClass->display();
而无需预先在$MyClass变量中创建MyClass类的实例。
正如我所说,我不确定这是否可能,如果这不是回答这种问题的合适地方,我会很乐意删除我的帖子。
更新谢谢你们的回复,伙计们,我想得越多,看完你们的评论后,我意识到这不是一个好主意,也真的不实用。
感谢
我认为您应该采取不同的方法,使用静态方法。
class MyClass
{
....
static function display() { echo 'test'; }
}
MyClass::display();
无论类的哪个实例,都只能使用行为相同的函数来执行此操作。您的示例是一个静态方法,因为函数将始终返回test
。如果函数必须使用实例变量或方法,那么就不能使用它。
我认为您想要一个静态类/函数。你可以做MyClass::display();
。
您可以做的是使方法static
并直接在类上调用该方法:
class MyClass
{
public static function display() { echo 'test'; }
}
MyClass::display();
除此之外:"自动加载"变量是不可能的。
使其成为一个静态方法。您不需要创建类的实例来调用静态方法。
class foo {
private static $test;
public static function test() {
echo 'test';
}
}
然后调用为:
foo::test();