Здравствуйте. Сразу покажу наглядно мой вопрос: PHP: <?php class Test { public $name; public function __construct (string $name) { $this->name = $name; } public function getName() : string { return $this->name; } } $objects = [ new Test("a"), new Test("b"), new Test("c"), new Test("d"), ]; $name = []; foreach($objects as $obj) { $name[] = $obj->getName(); } echo implode(", ", $name); /* На выводе получаем: a, b, c, d */ Как можно одной стандартной функцией сразу получить массив с именами объектов?
PHP: <?php class Test { public $name; public function __construct (string $name) { $this->name = $name; } public function getName() : string { return $this->name; } } $objects = [ new Test("a"), new Test("b"), new Test("c"), new Test("d"), ]; $names = $objects; array_walk($names, function(&$val,$key){ $val = $val->getName(); }); echo implode(", ", $names); /* На выводе получаем: a, b, c, d */
еще так можно PHP: $names = []; array_walk($objects, function($val,$key) use (&$names){ $names[] = $val->getName(); }); echo implode(", ", $names); --- Добавлено --- @mkramer ну ТС просит функцию )