簡體   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