Професионална програма
Loading...
+ Нов въпрос
bobno avatar bobno 17 Точки

Problem 17* Print People

80 / 100 гърми Test 2
https://pastebin.com/xQ41x0sf

Знам, че решението не е никак ОК, но имам голям проблем с тва OOP, взеха малко от малко да се получават решенията, но първо гледам да е работещо и след това се опитвам да го направя все по-правилно.

 

Ако модератор гледа това, предпочитам да ми даде входа на теста, да го измисля сам :)

Тагове:
0
PHP Fundamentals
dvdty avatar dvdty 497 Точки
Best Answer

Правиш обект, който изобщо не изполваш. Можеш просто да запълваш масива persons с хората:

$people[] = new Person($name, $age, $occupation);

Така, ще имаш позлва от обекта, а няма да презаписваш $person и да не правиш нищо с него.

Трябва да сортираш по години, затова ще им сложиш един getter:

public function getAge()
{
	return $this->age;
}

И след това ще го използваш, за да сортираш:

usort($people, function($a, $b){
	return $a->getAge() > $b->getAge();
});

В края е най-препорачително да позлваш магическата функция __toString, за да извикваш всеки един от тях:

public function __toString()
{
	return $this->name . ' - age: ' . $this->age . ', occupation: ' . $this->occupation . PHP_EOL;
}

И следователно:

foreach ($people as $person) {
	echo $person;
}

Ето как изглежда и целия код: https://pastebin.com/VWA1JTbE

1
bobno avatar bobno 17 Точки

Благодаря, че отдели от времето си !

0