Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызвать переменную вне функции / 15 сообщений из 15, страница 1 из 1
07.06.2013, 19:40
    #38290971
vinn.consult
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
..

function one($b,$c) {
...
$arr1 = array("ok");

}
..



Как обратиться к переменной $arr1 за пределами функции? Пробовал global, return, чего то не выходит
...
Рейтинг: 0 / 0
07.06.2013, 19:54
    #38290986
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
vinn.consultПробовал global, return, чего то не выходитВ первом варианте происходит связывание переменной из вызывающей программы с внутренней переменной функции. Другими словами, функция использует внешнюю переменную, а не наоборот.

Во втором, естественно, к внутренней переменной функции обратиться не получится. Ибо функция вернула результат в вызывающую программу и закончила работу. А вместе с ней померли и все внутренние переменные.
...
Рейтинг: 0 / 0
07.06.2013, 23:15
    #38291087
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
Код: php
1.
2.
3.
4.
5.
6.
7.
function one($b,$c) {
...
$arr1 = array("ok");
return $arr1;
}
$arr = one(1,2);
var_dump($arr);
...
Рейтинг: 0 / 0
08.06.2013, 10:33
    #38291201
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
ScareCrow,

Товарищу нужно значение переменной, а не результат функции, хотя черт его знает. В данном примере так конечно потянет, но в большинстве случаев результат ф-ии может быть иным. На худой конец, если нужно значение, то можно сделать:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function one($b,$c, &$var)
{
    $arr1 = array("ok");
    // здесь много чего-то делаем с $b, $c и $arr1
    $var = $arr1;
    return (count($arr1)>0) ? true : false;
}

$bResult = one(1,2,$myvar);
var_dump($myvar);
...
Рейтинг: 0 / 0
08.06.2013, 14:09
    #38291264
vinn.consult
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
Всем спасибо, нужен был как раз результат выполнения $arr1
Пошел другим путем и записал результат в базу, а потом в нужном месте вывел, эта функция вызывается ещё и из цикла.
Товарищи профи, это быдло код? Как все таки правильно нужно?
...
Рейтинг: 0 / 0
09.06.2013, 00:28
    #38291536
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
vinn.consultВсем спасибо, нужен был как раз результат выполнения $arr1
Пошел другим путем и записал результат в базу, а потом в нужном месте вывел, эта функция вызывается ещё и из цикла.
Товарищи профи, это быдло код? Как все таки правильно нужно?

<?

$myvar = null; //init value for some global variable
$count = 0

some_code();

function myfunc($params) {
global $myvar,$count;

foreach ($params as $item) {
...

$count++;
}

$myvar= 4+3+....;

return some_result();
}

echo $count;
echo $myvar;
//угадай какие сдесь будут значения

function myfunc2($params, &$myvar, &count)
{
...
}
...
Рейтинг: 0 / 0
09.06.2013, 01:09
    #38291543
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
alex564657498765453,

Код: php
1.
global $myvar,$count;


Ой чую я, что сейчас начнется война миров :-)
...
Рейтинг: 0 / 0
09.06.2013, 01:36
    #38291551
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
phpzОй чую я, что сейчас начнется война миров :-)Вряд ли. Уже почти все адекватные способы изложили. Остался неупомянутым, если не ошибаюсь, лишь один - использование в качестве переменной элемента какого-нить из суперглобальных массивов.
...
Рейтинг: 0 / 0
09.06.2013, 10:08
    #38291595
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
vinn.consultПошел другим путем и записал результат в базу, а потом в нужном месте вывел, эта функция вызывается ещё и из цикла.
...
Рейтинг: 0 / 0
09.06.2013, 12:35
    #38291640
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
Hettvinn.consultПошел другим путем и записал результат в базу, а потом в нужном месте вывел, эта функция вызывается ещё и из цикла.


я тоже думал постебаться с этого оригинального решения(и ведь ладно бы в мемкеш пихал :):) - так в базу данных ) но потом подумал, что я наверно что-то не правильно понял :)
...
Рейтинг: 0 / 0
09.06.2013, 12:43
    #38291645
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
alex564657498765453(и ведь ладно бы в мемкеш пихал :):) - так в базу данныхНу так и в БД можно таблицу в мемори использовать.
...
Рейтинг: 0 / 0
09.06.2013, 12:47
    #38291647
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
Можно, только если это значение нужно в пределах одного скрипта, то это кощунство.
Да и запись в мемори таблицу не особо быстра, ведь запрос надо разобрать и выполнить.
...
Рейтинг: 0 / 0
09.06.2013, 12:48
    #38291649
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
Ну а если же это своего рода кэш, то оно конечно имеет право на жизнь.
...
Рейтинг: 0 / 0
09.06.2013, 14:01
    #38291677
vinn.consult
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
Вообще, изначально я хотел добавить каждый результат выполнения функции в глобальный массив, чтобы потом когда цикл кончится разобрать его, но в силу своих познаний не смог. Сделал через одно место, работает и ладно, не для пользователей все равно.
...
Рейтинг: 0 / 0
09.06.2013, 14:06
    #38291680
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызвать переменную вне функции
vinn.consultизначально я хотел добавить каждый результат выполнения функции в глобальный массивНу так и заюзать сразу массив $GLOBALS. Однако, если нужен доступ к полученным данным из другого скрипта, то БД или мемкеш будет вполне подходящим решением.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызвать переменную вне функции / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]