|
|
|
| Есть у меня такая конструкция
function first($id)
{
function second ($a)
{
return $a+1;
}
$b = second(1);
echo $b;
return 1;
}
Но проблема в том, что функция second() не вызывается.
Как ее можно вызвать при условии, что эта функция находится в другой функции?? | |
|
|
|
|
|
|
|
для: zsaz
(11.08.2011 в 21:47)
| | Вызвать функцию second() можно только внутри first(), чтобы появилась возможность вызывать функцию second() в других функциях её нужно вынести из first() в глобальную область видимости. | |
|
|
|
|
|
|
|
для: cheops
(11.08.2011 в 22:03)
| | как ее можно вызвать изнутри? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(11.08.2011 в 22:14)
| | А прямо как у zsaz в примере, как обычную функцию, просто её имя не будет видно нигде, кроме как внутри функции. | |
|
|
|
|
|
|
|
для: cheops
(11.08.2011 в 22:03)
| | Или, сначала вызвать функцию first(), тогда функция second() автоматически станет глобальной. Точнее, она автоматически будет определена, что и позволит ее вызывать как любую другую функцию. | |
|
|
|
|
|
|
|
для: zsaz
(11.08.2011 в 21:47)
| | Есть у меня такая конструкция
А зачем вам такая конструкция? Есть только одна причина по которой можно засунуть функцию в функцию, это чтобы ее не было видно нигде кроме этой функции. Так зачем засовывать то что потом невозможно без гемора вытащить?
самый простой способ сделать так:
function first($id)
{
function second ($a)
{
return $a+1;
}
$b = second(1);
echo $b;
return 1;
}
function second ($a)
{
return $a+1;
}
ивызывайнехочу
|
| |
|
|
|
|
|
|
|
для: Valick
(11.08.2011 в 23:47)
| | >самый простой способ сделать так:
Угу, а потом вызвать first() и получить Fatal error. :) | |
|
|
|
|
|
|
|
для: Drago
(12.08.2011 в 00:07)
| | с какого перепугу? :)
___
да, вы правы, мой вариант совершенно не вариант))
сделал над собой усилие и проверил
хотя само по себе это бред.... ( | |
|
|
|
|
|
|
|
для: Valick
(12.08.2011 в 00:26)
| | Cпасибо. Функция действительно вызывается в функции, но только не в моей.
Вообще у меня вот такая вот конструкция. Получается, что функция url_replace вызывается по средством функции preg_replace_callback в функции first. Но по факту url_replace не вызывается внути функции first, а только если код написан отдельно.
function first()
{
$myrow['text'] = preg_replace_callback('@<a.+href=(\'|")((?!http://(www.|)mashintop.ru(/|)).*)(\'|")>@','url_replace', $myrow['text']);
} | |
|
|
|
|
|
|
|
для: zsaz
(12.08.2011 в 19:04)
| | Подскажите, пожалуйста! Как мне быть?? | |
|
|
|