関数・クラス解説

classkit_method_redefine

version:PECL classkit >= 0.1 (公式)

指定されたメソッドのコードを動的に変更する

公式リファレンス

書式

classkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] ) : bool

説明

注意: この関数により現在実行中(もしくはチェーンド)のメソッドを操作することはできません。

警告

この関数は、実験的 なものです。この関数の動作・名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHPのリリースにおいて変更される可能性があります。この関数は自己責任で使用してください。

パラメータ

classname
メソッドを再定義するクラス。
methodname
再定義するメソッドの名前。
args
カンマで区切られた、再定義後のメソッドの引数。
code
methodname がコールされた際に 評価される、新しいコード。
flags
再定義するメソッドの型。 CLASSKIT_ACC_PUBLIC、 CLASSKIT_ACC_PROTECTED あるいは CLASSKIT_ACC_PRIVATE のいずれか。
注意: このパラメータは PHP 5 以降でのみ使用されます。なぜなら、それ以前の バージョンでは全てのメソッドが public だからです。

返値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

注意

警告この関数は、実験的 なものです。この関数の動作・名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHPのリリースにおいて変更される可能性があります。この関数は自己責任で使用してください。

サンプル

例1 classkit_method_redefine() の例

class Example {     function foo() {         return "foo!\n";     } } // Example オブジェクトの作成 $e = new Example(); // Example::foo() の出力(再定義前) echo "Before: " . $e->foo(); // 'foo' メソッドの再定義 classkit_method_redefine(     'Example',     'foo',     '',     'return "bar!\n";',     CLASSKIT_ACC_PUBLIC ); // Example::foo() の出力(再定義後) echo "After: " . $e->foo();

上の例の出力は以下となります。

Before: foo! After: bar!

参考

  • classkit_method_add() - 指定したクラスに、新しいメソッドを動的に追加する
  • classkit_method_copy() - あるクラスのメソッドを別のクラスにコピーする
  • classkit_method_remove() - 指定したメソッドを動的に削除する
  • classkit_method_rename() - 指定したメソッドの名前を動的に変更する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール