我有一个具有静态属性和方法的类。我的方法之一是动态属性抓取器。我想动态地执行此操作,以防止为我想要返回的每个属性提供一个方法。单一方法会更好。
我的问题是该方法返回“未定义的属性”。我在互联网上尝试了各种解决方案,但似乎没有一个适合或有效。
类示例:
class Generic
{
public static $propA = "A";
private static $propB = "B";
protected static $propC = "C";
public static function getProperty(string $property): string
{
if (!property_exists('Generic', $property)) :
return "Undefined Property";
endif;
return self::$$property;
}
}
用法:
print_r(Generic::getProperty('propA'));
这将返回,就好像该属性不存在一样。事实上,可见性并不重要,因为它们都会返回,就好像它们不存在一样。此外,我知道这在不使用静态变量时有效。我宁愿继续使用静态变量。
BIG阳