[英]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.