[英]PHPDoc or type hint class as parameter to method
如何指示函数/方法接受类作为参数? PHPDoc或类型提示就足够了,但似乎都不允许它。
这是我正在考虑应该工作的一个例子......
/**
* @param $class class A reference to a class that will be used to do something
*/
function doReallyWeirdStuff(class $class){
$class::callStaticMethod();
}
我已经知道如何将类传递给这个函数。 我如何表明你应该这样做?
类名只是字符串,因此您必须键入提示它们为字符串。 然后,您需要在运行时检查它实际上是一个类,在您的方法中:
/**
* @param $class string A reference to a class that will be used to do something
*/
function doReallyWeirdStuff(string $class){
if (class_exists($class)) {
$class::callStaticMethod();
} else {
throw \InvalidArgumentException;
}
}
请注意,要严格遵守字符串值(如类名所需),您需要启用严格类型提示:
declare(strict_types=1);
否则,您可以这样称呼:
doReallyWeirdStuff(M_PI);
这没有多大意义。
除非传递实际的对象实例,否则不能使用PHPDoc类型提示。
但是,您可以滥用PHP Doc类型提示。
string|Class $class
or
Class $class
根据您的运行情况,这将产生非常混合的结果。 你将失去一些运行类型检查而没有错误否定/肯定的能力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.