2016-07-26 5 views
-1

何か問題があります。私はそれがこのサーバのPHPバージョン5.2であると思われます。コードは何の欠陥もなく前に5.6で動いていた...array_mapの代替PHP 5.2

私はそれが壊れている次のコードにそれをデバッグしました。しかし、私は何のエラーメッセージが出ない...

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

誰もが、それは5.2で動作するように私は、コードのこの部分をやり直し助けることができますか?

+0

正しく機能していないものについて説明できますか? – FirstOne

+0

このコードのコメントを外すと、ちょうど500の内部エラー... @FirstOne – Codehiker

+0

[PHPエラーを表示する方法]を確認してください(http://stackoverflow.com/questions/1053424/how-do-i-get- php-errors-to-display)。また、ログを確認することもできます... – FirstOne

答えて

6

PHP 5.2ではarray_map()に何も問題ありません。

問題は、あなたのコードである:それは、anonymous functionsを使用していますが、彼らは(ドキュメント・ページの下部にある変更履歴の項を参照)PHP 5.3で導入されました。匿名PHP関数を作成するcreate_function()機能を使用する必要がPHP 5.2(またはそれ以前)にこのコードを実行するために

:可能であれば

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

はしかし、それはあなたをアップグレードするために多くの方が良いでしょうバージョン7.0または5.6のPHPインタープリタ。 PHP 5.2 is dead and buried 5年以上前。

+2

これは良い答えです。しかし、私は実際にあなたが彼に与えたコードソリューションを使用しようとするよりも、OPのアップグレードを願っています。実際にアプリケーションが実際に動作する前にコードを変更するよりもずっと多くのコードを変更する可能性があります。現在、特に新しいコードのPHP 5.2をまだ実行していることについては言い訳がありません。 (アップグレードできない古いアプリを持っていても、そのような古いソフトウェアを実行するセキュリティ上の問題や互換性の問題があれば、アップグレードすることができます) – Simba