不推荐使用create_function()调用

时间:2018-02-12 12:04:43

标签: php php-7.2

我刚刚将服务器更新到最新版本的php 7.2,现在我有一些折旧警告。我该怎么办?

  

此功能自PHP 7.2.0起已废弃。非常不鼓励依赖此功能。

这是我的代码:

if(!array_key_exists('callable', $this->translation_plural)) {
    $this->translation_plural['callable'] = create_function('$n', $this->translation_plural['function']);
}

1 个答案:

答案 0 :(得分:0)

documentation建议使用匿名函数。鉴于$this->translation_plural['function']看起来像是一个字符串,你应该考虑重写。

如果您想摆脱警告,可以使用以下内容:

$this->translation_plural['callable'] = function($n) { return eval($this->translation_plural['function']); };

这对您的代码完全无效,您仍在使用eval,这是不好的做法。文档warns against using it.

唯一的区别是,create_function()在内部使用它,现在它非常明确。