配列要素がオブジェクトの時、
全要素に、要素自身のメソッドを実行させることはできるのでしょうか?
ただし、独自関数/クラスを書くのではなく、標準的な方法で。
<?php
class A
{
public function f() {
return 'x';
}
}
$objects = array(new A, new A, new A);
// これを
$wants = array();
foreach ($objects as $obj) {
$wants[] = $obj->f();
}
// こんな感じでできますか?
$wants = array_walk($objects, array(★, 'f'));
こんな感じでしょうか?
<?php $wants = array_walk($objects, create_function('$o,$i', 'return $o->f();')); ?>
<?php class A { public function f() { return 'x'; } } $objects = array(new A, new A, new A); $wants = array(); $callback = create_function('$array,$index','$wants[] = $array[$index]->f()'); array_walk($objects,$callbak); print_r($wants);
こんな所かな。テストはしてないので多少ミスはあるかもしれないが。