array_map PHP 5.2的替代方案

Cod*_*ker -1 php runtime-error array-map php-5.2

有些东西是错的,我怀疑它是我的PHP版本,在这台服务器上是5.2; 代码在5.6之前运行,没有任何缺陷......

我已将其调试到以下代码中.但是,我没有收到错误消息..

    $standard = array_map( function( $item ) {
        return $item['standard_resolution']->url;
    }, $images );
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我重做这部分代码,以便在5.2中工作吗?

axi*_*iac 6

array_map()PHP 5.2 没有任何问题.

问题在于您的代码:它使用匿名函数,但它们是在PHP 5.3中引入的(请参阅文档页面底部的Changelog部分).

为了在PHP 5.2(或更早版本)上运行此代码,您必须使用该create_function()函数来创建匿名PHP函数:

 $standard = array_map(
     create_function('$item', 'return $item["standard_resolution"]->url;'),
     $images
 );
Run Code Online (Sandbox Code Playgroud)

但是,如果可能,将PHP解释器升级到7.0或5.6版本要好得多.PHP 5.2已经死了并且埋藏了5年多.

  • 这是一个很好的答案.但我真的希望OP升级而不是试图使用你给他的代码解决方案.在他的应用程序实际工作之前,他可能会有更多的代码更改,而且还没有任何借口可以继续运行PHP 5.2,特别是对于新代码.(如果您有一个无法升级的旧应用程序,您可以原谅,但即便如此,运行此类旧软件的安全问题和兼容性问题应足以推动您进行升级) (2认同)