Object Aggregation 函数
在线手册:中文  英文

aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods Dynamic class and object aggregation of methods

说明

void aggregate_methods ( object $object , string $class_name )

Aggregates all methods defined in a class to an existing object, except for the class constructor, or methods whose names start with an underscore character (_) which are considered private to the aggregated class.

参数

object

class_name

返回值

没有返回值。

参见


Object Aggregation 函数
在线手册:中文  英文

用户评论:

Rodolfo (2005-09-12 03:27:18)

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 {
          function 
foo() {
                echo 
'from class A';
          }
}

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

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

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

?>

a at antialize dot dk (2005-03-21 03:12:49)

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();

易百教程