提供不同类型的方法

时间:2020-08-10 17:01:22

标签: php

我使用一个库,其中一个方法根据传递给它的参数返回不同的类型,比如说:

// 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对象专家,但是我有一个印象,那就是这并不是很方便(您应该事先知道将要返回的内容)。这是标准吗?还是应该完全避免?

2 个答案:

答案 0 :(得分:1)

当然设计得不是很好,但这是完全合法的。甚至某些php核心方法都具有这种行为(例如,如果未设置第二个参数,parse_url可以返回一个数组,如果设置了第二个参数,则可以返回一个字符串,如果遇到错误,则可以返回false

答案 1 :(得分:0)

这是不好的做法,应该避免。 PHP现在支持类型提示,并且使用它们是一个好习惯。

例如

class SomePaymentService implements PaymentServiceInterface
{
    
    public function processPayment(array $parameters): array
    {
        // Process a payment
        
        return [
            // results
        ];
    }
}
相关问题