簡體   English   中英

與PHP 7和PHP5的可變函數兼容性

[英]Variable function compatibility with PHP 7 and PHP5

我有一種情況,這在PHP5中工作但在PHP7中致命:

/* load batch processing data into variable */
$args = get_option('leads_batch_processing');
/* process batches */
self::$args['method']($args);

這適用於PHP7,但致命的PHP5:

/* load batch processing data into variable */
$args = get_option('leads_batch_processing');
/* process batches */
 self::{$args['method']}($args);

如何在兩種PHP環境中成功使用變量函數? 我嘗試使用基於PHP版本的if條件,但PHP7版本的語法致命PHP5,所以我不能走那條路。

我該怎么辦?

將其分配給常規變量,這不會導致語法錯誤:

$method = $args['method'];
$this->$method($args);

或者,與注釋中建議的類似,使用call_user_func()

call_user_func(
    array($this, $args['method']),
    $args
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM