我有一种情况,这种情况在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,所以我不能走那条路。
我该怎么办?
答案 0 :(得分:2)
将其分配给常规变量,这不会导致语法错误:
$method = $args['method'];
$this->$method($args);
或者,与评论中建议的内容类似,使用call_user_func()
:
call_user_func(
array($this, $args['method']),
$args
);