繁体   English   中英

PHP动态方法链接

[英]PHP Dynamic Method Chaining

如何将多个方法链接在一起而不知道会有多少个方法? 例如,如何像循环一样多次调用此addMultiLink方法?

(new EntryField('products'))->addMultiLink($product_ids[0])

基本上,我希望结果是这样的:

(new EntryField('products'))->addMultiLink($product_ids[0])->addMultiLink($product_ids[1])->addMultiLink($product_ids[2])

在您的addMultiLink返回$this

public function addMultiLink($argument) 
{
    // your code here

    return $this;
}

但是正如我所看到的,您每次调用时都会在函数中传递数组元素。 也许最好重写addMultiLink并将其参数视为数组? 或检查它是否为数组或某个整数值:

public function addMultiLink($argument) 
{
    if (is_array($argument)) {
        // do a foreach loop for example
    } else {
        // do something else
    }
}
$product_entry_field = (new EntryField('products'));
    foreach($product_ids as $product_id) {
        $product_entry_field->addMultiLink($product_id);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM