Описанная ниже ситуация привела к фатальной ошибке в PHP примерно в 50% браузеров, тогда как в других браузерах код работал нормально. Браузер или какой-либо клиентский сниффинг не использовался. Насколько я знаю, это невозможно (PHP работает по-разному в зависимости от клиентского браузера). Проблема решена, но я все еще хочу понять, как именно это могло произойти.
Итак, index.php включает в себя 2 файла:
include('a.php');
include('b.php');
а.php:
the_function();
б.php:
function the_function(){
//code
}
Фатальной ошибкой в 50% браузеров было то, что функция the_function не была определена в файле .php, поэтому файл .php выполнялся сразу после включения. В то время как в других браузерах он сначала включает все файлы php и только потом начинает выполняться.
Если я правильно помню, это были Mac Safari, Mac Chrome и IE, но я даже не знаю, характерно ли такое поведение для одних и тех же браузеров на разных машинах.
проблема, конечно, была решена путем изменения порядка включения. Но я все же хочу понять, почему это произошло.