Нашел прикольную статью с всесторонней и аргументированной критикой языка программирования PHP - http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ Рекомендуется к прочтению всем, кто собирается изучать этот ЯП, с целью направить их энергию в более полезное русло.
Маленький отрывок для Ъ:
Что делает вот этот код?
@fopen('http://example.com/not-existing-file', 'r');
- Если PHP был скомпилирован с опцией --disable-url-fopen-wrapper, он не будет работать (при этом документация говоря «it won't work» не поясняет, каким именно образом он не будет работать: вернет null, выбросит исключение, и т. д.)
- Если allow_url_fopen в php.ini выключен, то код тоже не будет работать, при этом совершенно непонятно как именно.
- Из-за @ предупреждение о несуществующем файле не выведется
- Но если scream.enabled включен в php.ini, то предупреждение выведется
- Или если scream.enabled включен через ini_set.
- Но оно не выведется, если задан неправильный error_reporting
- Куда именно выведется предупреждение сказать нельзя, так как это зависит от опции display_errors в php.ini. Которая может быть переопределена через ini_set
Таким образом, не зная опций компиляции, системных настроек и настроек на уровне приложения, нельзя сказать даже приблизительно как себя поведет простейший кусок кода.
Update: Полный перевод статьи на русский - http://habrahabr.ru/post/142140/