downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

aggregate_properties_by_list> <aggregate_methods_by_regexp
Last updated: Fri, 06 Nov 2009

view this page in

aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods クラスのメソッドを、動的にオブジェクトに集約する

説明

void aggregate_methods ( object $object , string $class_name )

クラスで定義されているすべてのメソッドを既存のオブジェクトに集約します。 ただし、クラスのコンストラクタは例外です。 また名前がアンダースコア文字 (_) で始まるメソッドも、 プライベートとみなされて例外となります。

パラメータ

object

class_name

返り値

値を返しません。

参考

  • aggregate() - メソッドおよびプロパティの動的なクラス/オブジェクト集約を行う
  • aggregate_info() - 指定したオブジェクトの集約情報を取得する
  • aggregate_methods_by_list() - 選択したクラスメソッドを、動的にオブジェクトに集約する
  • aggregate_methods_by_regexp() - 正規表現を使用して選択したクラスメソッドを、 動的にオブジェクトに集約する
  • aggregate_properties() - クラスのプロパティを、動的にオブジェクトに集約する
  • aggregate_properties_by_list() - 選択したクラスプロパティを、動的にオブジェクトに集約する
  • aggregate_properties_by_regexp() - 正規表現を使用して選択したクラスプロパティを、 動的にオブジェクトに集約する
  • deaggregate() - 集約されたメソッドやプロパティをオブジェクトから取り除く



add a note add a note User Contributed Notes
aggregate_methods
Rodolfo
12-Sep-2005 10:27
Just a note: aggregate_methods doesn't aggregate those methods already defined in the class, including those methods inherited from a parent class.

Here's an example:

- If class B inherits from class A and aggregates methods from class C:

<?php

class A {
          function
foo() {
                echo
'from class A';
          }
}

class
B extends A {
    function
B() {
        
aggregate_methods($this,'C');
    }
}

class
C {
          function
foo() {
                echo
'from class C';
          }
}

$myclass = new B();
$myclass->foo();
// This will print 'from class A'

?>
a at antialize dot dk
21-Mar-2005 11:12
You can use this to dynamicily add methods to a class

class foo {
  function addMethod(  $code ) {
    $cname = uniqid("class");
    eval( "class ${cname} { ${code} }" );       
    aggregate_methods( $this , $cname );
  }

  function bar() {
    $this->addMethod( "function baz() { echo 'sha'; }" );
  }
}

$bang = new foo();
$bang->bar();
$bang->baz();

aggregate_properties_by_list> <aggregate_methods_by_regexp
Last updated: Fri, 06 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites