PHP-将类视为对象
我需要给变量分配一个类(不是对象)。我知道这在其他编程语言中非常简单,比如Java,但我找不到在PHP中实现这一点的方法 这是我试图做的一个片段:PHP-将类视为对象,php,oop,Php,Oop,我需要给变量分配一个类(不是对象)。我知道这在其他编程语言中非常简单,比如Java,但我找不到在PHP中实现这一点的方法 这是我试图做的一个片段: class Y{ const MESSAGE = "HELLO"; } class X{ public $foo = Y; // <-- I need a reference to Class Y } $xInstance = new X(); echo ($xInstance->foo)::MESSAGE;
class Y{
const MESSAGE = "HELLO";
}
class X{
public $foo = Y; // <-- I need a reference to Class Y
}
$xInstance = new X();
echo ($xInstance->foo)::MESSAGE; // Of course, this should print HELLO
Y类{
const MESSAGE=“你好”;
}
X类{
public$foo=Y;//foo::MESSAGE;//当然,这应该打印HELLO
在php中,您不能在变量中存储对类的引用。因此,您需要存储一个带有类名和使用函数的字符串
在php中,不能将对类的引用存储在变量中,所以要存储一个带有类名和use function的字符串
您可以使用反射来查找它(请参阅),也可以使用如下方法:
<?php
class Y
{
const MESSAGE = "HELLO";
}
class X
{
function returnMessage()
{
return constant("Y::MESSAGE");
}
}
$x = new X();
echo $x->returnMessage() . PHP_EOL;
您可以使用反射来查找它(请参阅),也可以使用如下方法:
<?php
class Y
{
const MESSAGE = "HELLO";
}
class X
{
function returnMessage()
{
return constant("Y::MESSAGE");
}
}
$x = new X();
echo $x->returnMessage() . PHP_EOL;
我发现可以像处理任何常规字符串一样处理对类的引用
注意:在下面的代码片段中,我对问题中显示的代码做了一些修改,只是为了让它更易于阅读
class Y{
const MESSAGE="HELLO";
public static function getMessage(){
return "WORLD";
}
}
$var = "Y";
echo $var::MESSAGE;
echo $var::getMessage();
这提供了一种统一的机制来访问常量和/或静态字段或方法。我发现,可以像处理任何常规字符串一样处理对类的引用。以下似乎是最简单的方法
注意:在下面的代码片段中,我对问题中显示的代码做了一些修改,只是为了让它更易于阅读
class Y{
const MESSAGE="HELLO";
public static function getMessage(){
return "WORLD";
}
}
$var = "Y";
echo $var::MESSAGE;
echo $var::getMessage();
这提供了一个统一的机制来访问常量和/或静态字段或方法。为什么需要这样做?也许有一种更惯用的方法来实现您想要的,我正在编写一个小库,我需要访问常量,并在给定的类和运行时调用静态方法。上面的示例是我最简单的方法解释我的问题。你为什么需要这个?也许有一种更惯用的方法来实现你想要的,我正在编写一个小库,我需要访问常量并调用给定类和运行时的静态方法。上面的例子是我解释我的问题的最简单的方法。