<?php ## Несовместимость типов при "ручном" наследовании. require_once "File/Logger/Debug0.php"; $logger = new FileLoggerDebug0("test", "test.log"); // Казалось бы, все верно - все, что может FileLogger, // "умеет" и FileLoggerDebug0... croak($logger, "Hasta la vista."); // Функция принимает параметр типа FileLogger. function croak(FileLogger $l, $msg) { $l->log($msg); exit; }
<?php include 'vendor/autoload.php'; include 'lib/getDayInput.php'; $verbose = !@$_SERVER['RUN_BY_MAKE']; function croak($str, $stat = 1) { print "{$str}\n"; exit($stat); } $day_no = preg_replace('/\\D/', '', $argv[1]); $day_path = 'day/' . $day_no . '.php'; if (!file_exists($day_path)) { croak("No day for {$day_no} ({$day_path} not found)"); } include $day_path; $day = new AoC\Day(); $input = getDayInput($day_no); $result = $day->solve($input); print "Day {$day_no} result: " . join(', ', $result) . "\n";