<?php class Sum { private $sum = 0; public static function _(){ return new self; } public function add($a){ $this->sum += $a; return $this; } public function out(&$result){ $result = $this->sum; return $this; } } Sum::_()->add(1) ->add(3) ->out($result1) ->add(5) ->add(8) ->out($result2); echo "$result1\t$result2"; ?>
サンプル2
オークションで例えてみましょう。
<?php class Auction { private $sum=50000; public static function _(){ return new self; } public function sell($sales){ $this->sum += $sales; return $this; } public function buy($stock){ $this->sum -= $stock; return $this; } public function amount(&$result){ $result = $this->sum; return $this; } } Auction::_()->sell(5000) ->buy(3000) ->sell(2000) ->amount($result1) ->sell(5000) ->sell(2000) ->sell(1000) ->amount($result2); echo "$result1\t$result2"; ?>