【问题标题】:PHP Dynamic Method ChainingPHP 动态方法链
【发布时间】:2016-02-05 11:59:24
【问题描述】:

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

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

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

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

【问题讨论】:

  • 不,更多的是关于如何循环执行的问题
  • 哦,我明白了。抱歉举报。

标签: php loops methods chaining


【解决方案1】:

在您的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
    }
}

【讨论】:

    【解决方案2】:
    $product_entry_field = (new EntryField('products'));
        foreach($product_ids as $product_id) {
            $product_entry_field->addMultiLink($product_id);
        }
    

    【讨论】:

      猜你喜欢
      • 2015-08-10
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2010-09-12
      • 2014-11-22
      • 1970-01-01
      相关资源
      最近更新 更多