PHPのarray_map()でクラスのメソッドをコールバックに指定する方法!
array_map()は通常、
array_map("function名",$array);
として、コールバックのfunction名を文字列で指定します。
しかし、これだとインスタンス化したクラスやクラスメソッドをコールバックに指定できません。
これには方法があります。
コールバックは配列で指定するのです。
例えばこんな感じ。
class Sample{ public function calc(){ //処理 } } $array = array(1,2,3,4,5); array_map(array("Sample","calc"),$array);
または、インスタンス化する場合は、
class Sample{ public function calc(){ //処理 } } $sample = new Sample(); $array = array(1,2,3,4,5); array_map(array($sample,"calc"),$array);
PHP4の場合は、こうするそうです。
class Sample{ public function calc(){ //処理 } } $sample = new Sample(); $array = array(1,2,3,4,5); array_map(array(&$sample,"calc"),$array);