[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Доступ к локальной переменной.
Spone
Пишу телеграмм бота(вебхуки) на PHP и на ровном месте возникла проблема с областью видимости переменной. Второй день сижу и не могу понять как решить это, уже руки опускаются.
ps: это просто пример, все остальное РАБОТАЕТ(сообщение отправляется, все отлично отрабатывает). Проблема именно в области видимости переменной $select.
Сразу после выбора товара - $select имеет нужное мне значение, но после нажатия "Купить" $select обнуляется! Я пробовал: $GLOBALS['select']; global $select - НИЧЕГО не помогает, просто кипит уже.Перелопатил все темы с областью видимости переменной - все понял, но мою проблему это не помогает решить. Может для это нужно использовать другую логику? Подскажите пожалуйста. Благодарю за внимание!


$product1 = 'яблоко';
$product2 = 'арбуз';

//выбор товара//
switch($message) {
case 'Продукт №1':
$select = $product1; //запоминаем выбор клиента
sendMessage($chat_id, $product1);
break;
case 'Продукт №2':
$select = $product2; //запоминаем выбор клиента
sendMessage($chat_id, $product2);
break;
}
//покупка//
switch($message) {
case 'Купить':
sendMessage($chat_id, 'Вы выбрали'.$select.'для оплаты...'); //???переменная $select НЕНАЙДЕНА???
break;
}
Kusss
1. Использовать Сессию для хранения состояния (она долго не хранится)
2. подключить Базу данных

так как каждый раз, когда вы запускаете файл - срабатывает $select="";
Spone
Цитата (Kusss @ 11.01.2019 - 14:33)
1. Использовать Сессию для хранения состояния (она долго не хранится)
2. подключить Базу данных

так как каждый раз, когда вы запускаете файл - срабатывает $select="";

насколько я знаю в телеграмме нету Сессии, в этом и беда)
$select="" убирал и это ничего не меняло, значение также сбрасывалось, нехочется ради такого пустяка подключать БД, неужели по другому нельзя?
Не понимаю логику PHP (возможно так и на других языках) но почему я внутри switch я не могу установить переменную которая бы запоминалась и я мог пользоваться ею во всем коде wink.gif
Kusss
потому что, в php после отработки кода умирают ВСЕ данные и все соединения.
Kusss
в телеграмме есть уникальный идентификатор пользователя. Можно создать для каждого клиента текстовый файл , в котором будут храниться данные.
Spone
Цитата (Kusss @ 11.01.2019 - 16:04)
потому что, в php после отработки кода умирают ВСЕ данные и все соединения.

Все до меня доперло, спасибо за обьяснение.. не в ту сторону копал))
Быстрый ответ:

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