Предположим, у меня есть простой класс, такой как:
class MyClass {
private $_prop;
public function getProp() {return $this->_prop;}
[....]
}
Теперь, что я хочу сделать где-то вне области действия MyClass
, это получить массив $ _prop из массива объектов MyClass
($objs
).Это, конечно, можно сделать с помощью кода, подобного следующему:
$props = array();
foreach ($objs as $obj) {
$props[] = $obj->getProp();
}
Однако для этого нужно взять несколько строк, особенно если они сформированы таким образом (и я должен использовать такое форматирование).Итак, вопрос: возможно ли это сделать с помощью array_map?Одним из способов было бы использовать функцию создания, но мне не очень нравится это в php (лямбды в php по крайней мере неудобны, и если я правильно понимаю, их производительность подобна производительности уклоненного кода, но производительность здесь не имеет значения).Я устал немного искать и не смог найти никакого определенного ответа.Но у меня вроде есть ощущение, что это невозможно.Я пробовал что-то вроде array_map(array('MyClass', 'getProp'), $objs)
, но это не работает, поскольку метод не является статичным.
Редактировать: я использую php 5.3.