Задача на миллион рублей
Added 2024-04-20 19:54:36 +0000 UTCЯ тут увидел задачу на позицию PHP программиста с зарплатой в миллион рублей и решил показать возможный вариант решения, который будет достаточно гибким и легко реализуется, у меня ушло всего 46 минут на решение правда я вчера вечером уже обдумал вариант и сегодня оставался только кодинг.
Задача на миллион рублей
Чуть лучше вместо функций использовать классы:private static $paramTypes = [
"?d" => new NumberParam(),
"?f" => new FloatParam(),
]
Каждый из этих классов должен иметь метод Process, который будет делать то же самое, что и одноименная функция, которую я использовал в видео.
public function nextParam($paramType) {
$obj = new StringParam();
$inc = 0;
if (array_key_exists($paramType, self::$paramTypes)) {
$obj = self::$paramTypes[$paramType];
$inc = 1;
}
return [$obj.Process($this->args[$this->currentIndex++]), $inc];
}
С точки зрения паттернов я думаю классы заценят больше.
Если будете подаваться, поменяйте имена переменных, сделайте через классы, добавьте интерфейс IParamParser, чтобы два человека не отправили одно и то же.