[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как получить значение глобальной переменной
Helram
Привет, как получить значение глобальной переменной _SESSION? данный код не работает... по всей видимости вместо скобок для глобальных переменных нужно что то другое писать.

$_SESSION['num']='555';
$num=777;

echo ${"num"};
echo "<br>";
echo ${"_SESSION['num']"};

//Пробовал так $_{"SESSION['num']"} и так $_{"_SESSION['num']"} - не выводит


P.S. Понадобилась потребность в части сайта сделать функцию которая будет делать запросы в БД, в бд уже будут существовать строки запроса типа UPDATE `table` SET `key`='*$valll*'
Чтоб не использовать eval решил сделать поиск определенных символов и замену на переменные, в данном случае мы ищем все *$ до * и изменяем их на переменные, то есть должна подставиться переменная valll, запрос после изменения будет вот такой "UPDATE `table` SET `key`='Значение valll'", не сложный механизм - не много строк, с помощью strpos и substr смог его сделать.
Но вот глобальные переменные не хотят подсовываться... Как изменить строку echo ${"_SESSION['num']"}; чтоб получить 555?
Helram
А все я понял дело не в том что это глобальная переменная, а в том что это массив.
Подскажите плиз как получить значение 'num'?
Valick
Цитата (Helram @ 25.12.2019 - 21:02)
Подскажите плиз как получить значение 'num'?


$_SESSION['num']='555';

echo $_SESSION['num'];

Как ощущения?

_____________
Стимулятор ~yoomoney - 41001303250491
Helram
Цитата (Valick @ 25.12.2019 - 22:16)
Цитата (Helram @ 25.12.2019 - 21:02)
Подскажите плиз как получить значение 'num'?


$_SESSION['num']='555';

echo $_SESSION['num'];

Как ощущения?

Прочитай полностью первый пост, там где P.S.
В БД хранятся строки запросов - типа "шаблон запроса в бд" сама же функция делает запрос на сервер в некоторых скриптах - получает шаблон сканит его - и подставляет нужные переменные.
walerus
Ты сессию запускаешь ? session start...

Если да, то проблем должно быть минус 1.

Покажи часть кода, которая получает "строку" из БД и ты в ней пытаешься заменить *,,,* на $_SESSION.
Valick
Helram, зачем запросы хранить в бд? Чем не устраивает штатный механизм подготовленных запросов?


_____________
Стимулятор ~yoomoney - 41001303250491
Helram
Цитата (walerus @ 25.12.2019 - 23:39)
Ты сессию запускаешь ? session start...

Если да, то проблем должно быть минус 1.

Покажи часть кода, которая получает "строку" из БД и ты в ней пытаешься заменить *,,,* на $_SESSION.

Конечно запускаю, проблема оказалось не в сессии, а то что переменная идёт массивом.

$zamena='arr';
$arr=array('dsa');
$info=${$zamena};
var_dump($info);
//array(1) { [0]=> string(3) "dsa" }

$zamena='arr[0]';
$arr=array('dsa');
$info=${$zamena};
var_dump($info);
//NULL

Вот как в одну строку изменить переменную $info на $arr[0], то есть понятно да?? - при обработке текста запроса - шаблона так сказать мы выдернули НАЗВАНИЯ переменных "циклом их будем изменять, не об этом речь - вопрос в том как получить значение в массиве", в данном примере название прописано в переменной $zamena - нужно получить dsa, а его получить не могу...
Подскажет может кто? не хочется велосипед изобретать...
Helram
Цитата (Valick @ 25.12.2019 - 23:42)
Helram, зачем запросы хранить в бд? Чем не устраивает штатный механизм подготовленных запросов?

Понадобилось сделать так.
Valick
Цитата (Helram @ 25.12.2019 - 23:00)
не хочется велосипед изобретать...

Ты его уже изобрёл, причём с квадратными колёсами. А от нас хочешь услышать какой асфальт надо положить перед этим велосипедом, чтоб он наконец то поехал.

В данном случае совета будет всего два.
1) Если ты задаёшь вопрос на форуме и хочешь услышать ответ, будь добр отвечай на наводящие вопросы детально и с завидным энтузиазмом. Ответ "понадобилось сделать так" сам понимаешь не ответ, и сводит на нет и без того не очень сильное желание тебе помогать.
2) Отложи свой код куда-нибудь подальше, желательно, что бы потом его совсем потерять и прочитай для начала хотя бы одну бумажную книгу по РНР, а лучше 2-3. Именно потому, что у тебя отсутвуют базовые понятия (точнее они присутствуют с огромными пробелами) ты изобретаешь велосипеды "на ровном" месте.

P.S. Задавая вопрос на форуме никогда не забывай о "проблеме молотка".

_____________
Стимулятор ~yoomoney - 41001303250491
walerus
Как то все мутно написано, толком ничего не понятно... точнее понятно, но не до конца.

Для чего хранить НАЗВАНИЯ в таком "$zamena='arr[0]';" виде?... нельзя просто ключ хранить например "0" или сделать массив ассоциативным и в нем хранить "значение ключа `dsa` ", т.е.

$zamena='arr';
$arr=array('dsa' => 'dsa');
$info=${$zamena};
var_dump($info);

array(1) {
["dsa"]=>
string(3) "dsa"
}
Kusss
$info = $$zamena; // тоже самое что и $info=${$zamena}, но понятнее ))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.