3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class Person { protected $name; public function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } } class Business { // adding Staff class to Business public function __construct(Staff $staff) { $this->staff = $staff; } // manual hire(adding Person to Staff) public function hire(Person $person) { // add to staff $this->staff->add($person); } // fetch members public function getStaffMembers() { return $this->staff->members(); } } class Staff { // adding people from Person class to "member" variable protected $members = []; public function __construct($members = []) { $this->members = $members; } // adding person to members public function add(Person $person) { $this->members[] = $person; } public function members() { return $this->members; } } // you can also create an array with this method $bros = [ 'Bro', 'Zdenko', 'Miljan', 'Kesten' ]; // pretty simple to understand this part $employees = new Person([$bros]); $staff = new Staff([$employees]); $business = new Business($staff); //var_dump($business->getStaffMembers()); // or the print_r, it doesn't matter //print_r($business->getStaffMembers()); /* You have an array of members now, if you'd like to utilize this array * you could iterate over it and echo each member, within a foreach loop * */ $membersArray = $business->getStaffMembers(); foreach($membersArray as $obj){ print_r($obj); }
based on MTWIk
Output for 5.5.0 - 7.3.1
Person Object ( [name:protected] => Array ( [0] => Array ( [0] => Bro [1] => Zdenko [2] => Miljan [3] => Kesten ) ) )