Загадка про PHP. Номер 12.
Дано:
function Test1()
{
function Test2()
{
}
}
var_dump(function_exists('Test2'));
Test1();
var_dump(function_exists('Test2'));
Что выведет функция var_dump в каждом случае?
Комментарии 10
Единственное что было, так это я выполнил list( $a[], $a[], $a[] ) = explode( " ", «this is array» ); — но уже после того, как прочел ответ, мне интересно стало.
Конкретно этот вопрос — то, что функция в функции не существует, пока не будет вызвана «родительская» функция, я знаю. И то, что она глобальной потом будет.
Один раз на практике использовал.
Болк, а зачем по твоему это нужно?
В смысле что функция глобальной оказывается.
Например, я подменяю в регистре 1.4 GD на два набора
function x()
{
class y
{
…
}
}
$y=new y; // undeclared
x();
$y=new y;
а мне бывает полезна такая конcтрукция:
if(!function_exists('xxx'))
{
function xxx(){…}
}