脈絡もなくPHPネタ。いや、いろいろとすぐに忘れちゃうもんで。スタティックメソッドチェーンて、できるのか?まぁ、インスタンスアクセスをしないユーティリティクラスに対して値を設定するなんてことは普通しないワケなんだけど、何を思ったのか、スタティックメソッドでメソッドチェーンができないかを試してみた。ま、実用性皆無のサンプルだけど、こんな感じのコードがあったとする。{self::$_counter++;}}見てのとおり、現在値の取得とカウンタのインクリメントをスタティックメソッドで提供している。Counter::current();とかってすると、出力はNULL1見たいな感じになる。self;}としてみる。Counter::increment()::current();」とかってやってみたいわけ。記述は変態じみてるけど。実行してみると、以下のようになる。"self"1キーワード「self」を戻り値にすると、"self"という文字列が返るみたいだ。「increment()::current()」はできませんでしたとさ。call_user_funcのまとめよく忘れるのでメモ的にまとめる。関数「call_user_func」は、第一引数に関数名、それ以降にその関数への引数を列挙することで動的な関数呼び出しを行う関数。引数にはarrayを渡すこともでき、これによりメソッド呼び出しも行える。インスタンスメソッドもクラスメソッド(スタティックメソッド)も。まとめるとこんな感じ。関数呼び出し呼び出したい関数名をstringで渡す。インスタンスメソッド呼び出しarray渡し。arrayの第一要素にはメソッドを所有するインスタンス、第二要素にメソッド名をstringで渡す。クラスメソッド呼び出しarray渡し。arrayの第一要素にはクラス名をstringで、第二要素にメソッド名をstringで渡す。ちなみにPHP5のコードなので注意。[コメント(0)|トラックバック(0)]いつのまにか1.0.1でてるし。04時29分53秒うぎゃ、未チェックだった。Frameworkが7/30付けで1.0.1になってる。いま1.0.0で仕事やってるんだけど、バージョンあげたほうがいいのかしらん。今のとこバグくさいのにあたってないからこのままでもいいのかな。吊ブックマークレットtumblrのキーボードショートカットが便利になっとる。Chrome編dataスキームの画像をブロックしてみるローカルストレージを確認したり消したりするブックマークレットそうそう、いまさらTwitter始めました。(9)このブログについてJavaScriptとかC#とかPHPとか。