タグ: PHP5.3

  • add_action, add_filterで無名関数が使えます。

    最近は PHP 5.3 がいろんなレンタルサーバーでもメジャーになってきて、PHP 5.2 は若干レガシーかな。みたいな雰囲気ですね。

    そんなPHP 5.3ですが、無名関数が使えます。

    [php]
    $foo = function( $bar ) {
    echo $bar;
    };
    $foo("ほげ"); //ほげ
    [/php]

    こんな感じで、書けるようになりました。JavaScriptみたいに書けますね!

    前から、create_functionという関数はあったんですが、こんな感じで文字列で渡さないとなので、とても読み書きがしづらいんですよね。匿名関数というやつです。
    [php]
    $foo = create_function( "$bar", "echo $bar;" );
    $foo("ほげ"); //ほげ
    [/php]

    そんなわけで、add_action, add_filter もこんな風に書けます。

    [php]
    add_filter( "hoge", function( $param ){
    $param = $param + "ほげ";
    return $param;
    } );

    add_action( "hoge", function( $piyo, $fuga ){
    echo $piyo + $fuga;
    }, 10, 2 );
    [/php]

    時と場合を選ぶとは思うんですけど、アクションフック・フィルターフックは無名関数を使って書いた方が、関数名の衝突等も発生しないのでいい場合も多いかもしれません。また、チームのメンバーがJavaScript得意って場合もこっちの方が読み易いかも知れません。

    とりあえず、オーバーライドや、remove_action, remove_filer が想定される場合は避けましょう。

  • さくらのレンタルサーバーにPHP5.3用のPECLをインストール

    Drupal7をいれたときにも書いたのですが、PECL全般に使えそうなので再度まとめです。

    さくらのレンタルサーバーはデフォルトのPHPがPHP5.2.17になっています。
    コントロールパネルからウェブ領域で動作するPHPのバージョンはPHP5.3.6等に変更することができます。

    ですが、コマンドラインで動作するPHPは5.2.17のままなので、PECLを入れるとき若干PHP5.2.17用のものがインストールされてしまうので、PHP5.3用のモジュールをインストールしたときのまとめです。

    (さらに…)