Всё будет Кока-Кола.
Совет для новичков и модульных систем.
Оказывается при использовании собачки в купе с include или require, может дать крайне нехороший результат.
Т.е., если вы считаете что @include 'some.php' подавит сообщение об ошибке, если такого файла не существует - вы правы, однако если такой файл есть, то оператор подавит ВСЕ ошибки в вызываемой библиотеке.
Думаете хорошо? Нет.
Рассмотрим пример:
Есть 10 библиотек вызываемых циклом с @include/@require. В одной из них допущена критическая ошибка.
Самое вкусное, что это сообщение в какой библиотеке произошла ошибка и какая - вы не увидите, программа просто прервется и всё.
Вывод:
При вызове большого числа библиотек, лучше использовать конструкцию file_exists, а не @include/@require.
Вот так-то!
P.S. Проверялось в 4 версии, по моим данных в 5 аналогичная ситуация.
Оказывается при использовании собачки в купе с include или require, может дать крайне нехороший результат.
Т.е., если вы считаете что @include 'some.php' подавит сообщение об ошибке, если такого файла не существует - вы правы, однако если такой файл есть, то оператор подавит ВСЕ ошибки в вызываемой библиотеке.
Думаете хорошо? Нет.
Рассмотрим пример:
Есть 10 библиотек вызываемых циклом с @include/@require. В одной из них допущена критическая ошибка.
Самое вкусное, что это сообщение в какой библиотеке произошла ошибка и какая - вы не увидите, программа просто прервется и всё.
Вывод:
При вызове большого числа библиотек, лучше использовать конструкцию file_exists, а не @include/@require.
Вот так-то!
P.S. Проверялось в 4 версии, по моим данных в 5 аналогичная ситуация.
О, а ведь это крайне удобно. ))
Не знал (и даже не задумывался, впрочем, что include/require можно совместить с собачкой). Спасибо.
P.S. PHP 5.2.1 - работает аналогично. А, да, и @eval() - тоже.
я, если честно, не встречал...
а по теме - имхо использование собачки вообще лучше избегать.
Вот!!! Вот она, мать родная большинства багов - лень программиста )))
P.S. А что тут сложного,в самом начале скрипта сделать блок с проверками isset() или empty() ?
function _get_var($name) {
return (isset($_REQUEST[$name])) ? $_REQUEST[$name] : false ;
}
А не разводить ересь с "собаками".
0.215471982956 vs 0.294816970825
0.217481851578 vs 0.290646076202
0.215773105621 vs 0.290854930878
0.218496084213 vs 0.290129184723
0.216236829758 vs 0.287453174591
0.220608949661 vs 0.286588907242
0.212882995605 vs 0.286224842072
0.217647075653 vs 0.287744045258
0.212151050568 vs 0.29031920433
0.217796087265 vs 0.290284872055
(первое число — через
жфункцию, второе — просто через собачку)