Если человек ответил и ошибка исчезла или написанная функция работает, значит все хорошо ведь?
>>> '\xF0\x9F\x9A\x9A Назначена доставка '
=> "\xF0\x9F\x9A\x9A Назначена доставка "
>>> "\xF0\x9F\x9A\x9A Назначена доставка "
=> " Назначена доставка "
catch (Exception $e) {
$e->getMessage();
}
if (file_exists($controllerFile)) {
include_once($controllerFile);
}
Вот в этом и проблема. Отсутствие проблемы лично у вас не означает отсутствие их вовсе.
У джуниоров из смежного рабочего проекта, где много легаси-кода, например, возникало большое количество проблем, когда они пытались запускать код под Windows. Отчасти они, конечно, касались того, что для Windows доступно меньше собранных расширений PHP типа Gearman (требует неплохих танце в с бубдном) и т.п.
Или, например, в Windows файловая система не чувствительна к регистру, что при определённом стечении обстоятельств может стать причиной проблем. Здесь, конечно, стоит сделать пометку о том, что большинство таких ситуаций решаются написанием более совместимого или правильного кода. Но всё же.
С версиями же тоже были примеры. Например, разные версии wkhtmltopdf (и использующий его KNP Snappy) могли по-разному рендерить PDF. В одной версии контент попадал в страницу, а в другой - вылезал не следующую. Ещё, например, в новой версии PostgreSQL последовательности (sequence) стали храниться в другом месте. Одна версия Nginx уже перешла на HTTP2, а другая ещё использует SPDY.
Не говоря уже о том, что в целом для множества языков поддержка Windows вторична и они туда портированы. Да и родные инструменты командной строки будут поудобнее того, что доступно в Windows. Хотя новичку, конечно, может быть непривычно. Но ведь задача разработчика не поддерживать свои привычки, а быть специалистом в своей сфере. И если вы разрабатываете на PHP, то знания вашего стека (Nginx, Apache, MySQL, PostgreSQL, PHP, Linux, Memcached, Redis, Varnish, etc - нужно подчеркнуть) будут нужны. На реальном сервере не отделаться OpenServer, который делает всё за разработчика.