我在Controller内部有如下方法:
/**
* Show the form for creating a new resource.
* @param SkillForm|null $model
* @return Renderable
*/
public function form(?SkillForm $model): Renderable
{
return view('components.forms.index', [
'model' => $model,
]);
}
是否可以将类型(SkillForm)设置为其他地方的静态变量并使用它?例如(这不起作用):
/**
* Show the form for creating a new resource.
* @param SkillForm|null $model
* @return Renderable
*/
public function form(?self::model $model): Renderable
{
return view('components.forms.index', [
'model' => $model,
]);
}
2条答案
按热度按时间fhity93d1#
PHP目前不支持动态定义方法的类型。
如果您的目标是验证它是正确的类型,那么有几个选项可用
1.使用公共接口
你也可以使用一个基类来代替接口,但通常接口是首选的方法。
1.使用类型联合
1.在函数内部执行检查
接口和联合类型检查通常更适合IDE支持和静态分析
aurhwmvo2#
简短的回答是PHP不支持在运行时动态输入方法参数。
您可以从方法签名中删除类型提示,并检查方法内部的对象类型。