相关疑难解决方法(0)

PHP中的变量函数和类型提示

快速的一个:

有没有办法在PHP中强制执行可变函数的类型?我假设没有,但也许我错过了什么.

截至目前,我只是强制所需类型的一个必需参数,并迭代检查其余的.

public function myFunction(MyClass $object){
    foreach(func_get_args() as $object){
        if(!($object instanceof MyClass)){
            // throw exception or something
        }
        $this->_objects[] = $object;
    }
}
Run Code Online (Sandbox Code Playgroud)

更好的解决方案?


目的:

一个容器对象,充当子对象的迭代列表,具有一些实用程序功能.使用可变参数构造函数调用它将是这样的:

// returned directly from include
return new MyParent(
    new MyChild($params),
    new MyChild($params),
    new MyChild($params)
);
Run Code Online (Sandbox Code Playgroud)

另一种选择可能是addChild方法链:

$parent = new MyParent;
return $parent
    ->addChild(new MyChild($params))
    ->addChild(new MyChild($params))
    ->addChild(new MyChild($params));
Run Code Online (Sandbox Code Playgroud)

孩子们也会对他们的构造函数提出几个论点,所以我试图在易读性和处理费用之间取得平衡.

php types variadic-functions type-hinting

5
推荐指数
2
解决办法
5056
查看次数

标签 统计

php ×1

type-hinting ×1

types ×1

variadic-functions ×1