PHP 5.4.31 Released

オブジェクトの集約関数

目次

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

User Contributed Notes 3 notes

up
0
kencomer at NOSPAM dot kencomer dot com
8 years ago
For PHP5 applications, the all of the "aggregate" function family is now in runkit.

  http://php.net/manual/en/ref.runkit.php
up
0
Jeb.
11 years ago
It is worth noting that class association does not work, even in PHP 4.3.0 - this ability is experimental. I'm assuming it was added in for the sake of forwards-compatibilty. Use object association instead for now.

Until it is implemented, you will receieve a parse error when attempting to use it.

Related bug report: http://bugs.php.net/bug.php?id=20531

Just to prevent people posting about "why it doesn't work??", etc etc etc.
up
0
Greg Beaver firstname at chiaraquartet dot net
11 years ago
If you need to serialize an object for sessions or other purposes, and want to save aggregation state, extend it from a base class such as this one, and use $this->agg/$this->unagg instead of aggregate/deaggregate

<?php
class base
{
    var
$_aggregates = array();
   
    function
agg($agg)
    {
       
aggregate($this,$agg);
       
$this->_aggregates[$agg] = 1;
    }
   
    function
unagg($agg = false)
    {
        if (
$agg)
        {
            
deaggregate($this,$agg);
             unset(
$this->_aggregates[$agg]);
        } else
        {
            
deaggregate($this);
           
$this->_aggregates = array();
        }
    }
}
?>
To Top