我使用一个库,其中一个方法根据传递给它的参数返回不同的类型,比如说:
// returns string when you pass "foo" to the method
$string = $obj->useMethod("foo");
// returns an array when you pass "bar" to the method
$array = $obj->useMethod("bar");
我不是PHP对象专家,但是我有一个印象,那就是这并不是很方便(您应该事先知道将要返回的内容)。这是标准吗?还是应该完全避免?
答案 0 :(得分:1)
当然设计得不是很好,但这是完全合法的。甚至某些php核心方法都具有这种行为(例如,如果未设置第二个参数,parse_url
可以返回一个数组,如果设置了第二个参数,则可以返回一个字符串,如果遇到错误,则可以返回false
)
答案 1 :(得分:0)
这是不好的做法,应该避免。 PHP现在支持类型提示,并且使用它们是一个好习惯。
例如
class SomePaymentService implements PaymentServiceInterface
{
public function processPayment(array $parameters): array
{
// Process a payment
return [
// results
];
}
}