我想知道是否有另一种方法来检查传递的字符串参数。目前我使用包含所有有效选项的数组列表来执行此操作。为此,我使用 in_array 函数。
Class Foo {
private $allowedOptions = ['a','b','c'];
public function baz(string $parameter): array
{
if (!in_array($parameter, $this->allowedOptions))
{
return [];
}
return doSomething($parameter);
}
}
一个想法:是否也可以使用 Enum?
定义一个 Enum 来表示您的选项:
enum Option: string {
case A = 'a';
case B = 'b';
case C = 'c';
}
然后更新您的类以使用此Enum:
class Foo {
public function baz(string $parameter): array {
// you can chekc here if the parameter is a valid Enum case
if (!Option::tryFrom($parameter)) {
return [];
}
return $this->doSomething($parameter);
}
}
Option::tryFrom($parameter)
将检查传递的 $parameter
是否是 Option Enum 的有效情况。如果 $parameter
无效,函数将返回一个空数组。否则,它将执行您的 doSomething
方法。