Вложенные функции в php — EVIL |
Долго-долго искал плавающего жука в программе и попутно обнаружил следующую особенность php: он весьма криво обрабатывает вложенные функции.
Например,
function foo ()
{
function callback_fn() { }
$str = preg_replace_callback ($pattern, $replacement, 'callback_fn', $str);
}
запросто может вызвать ошибку типа 'Fatal error: Cannot redeclare callback_fn'. Особенно если foo() внутри класса.
Рубрики: | Всякое |
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |
asgalex@LinuxMint ~ $ gcc -x c++ -o a.out foo.c
foo.c: In function ‘int main()’:
foo.c:3: ошибка: a function-definition is not allowed here before ‘{’ token
foo.c:4: ошибка: нет декларации ‘foo’ в этой области видимости
PHP:
if(!function_exists('foo')){
function foo($arg1) {
return $arg1;
}
}
font>
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |