PHPの「syntax error, unexpected T_FUNCTION in」について
PHPの「syntax error, unexpected T_FUNCTION in」について 前回の質問で、あるコードを教えていただきました。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12117208802 自宅に立てているWebサーバでは、なんの問題もなく動作させることが出来ました。 しかし、レンタルサーバー上にて動作させると以下の様なエラーが 教えていただいたコードの箇所で発生します。 "Parse error: syntax error, unexpected T_FUNCTION in ~~~~~~" これはPHPのバージョンの違いによるものなのでしょうか? レンタルサーバ上では、PHP5.2, 5.3, 5.4しか選択できないため検証できませんでした。 どなたか解決方法を知っている方がいらっしゃいましたらご教授お願い致します。 ーーーーーーーーーーーーーーーーーーーーーー 教えていただいたコード $people = array_filter( ____$people, ____function ($person) { ________static $names; ________$ret = !isset($_names[$person['name']]); ________$names[$person['name']] = true; ________return $ret; ____} );
PHP・5,643閲覧・100
ベストアンサー
関数を値のように扱う構文(無名関数・クロージャ)はPHP5.3以降専用です。 http://php.net/manual/ja/functions.anonymous.php 以前のソースコードに少し無駄があったのでさらに短くしてみました・・・w http://qiita.com/mpyw/items/1044c94d1a7820b255a8 $people = array_filter( ____$people, ____function ($p) { ________static $h = array(); ________return !isset($h[$p['name']]) and $h[$p['name']] = true; ____} );
1人がナイス!しています
質問者からのお礼コメント
前回に引き続き、ご回答いただきましてありがとうございました。 レンタルサーバより<?php phpinfo(); ?>を実行し、バージョンを確認してみたところ5.2でした。 レンタルサーバでの設定は5.4になっているので、そこら辺に問題がありそうです。 短くなったコードも有り難く利用させていただきますm(_ _)m
お礼日時:2013/12/1 1:28