Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не формируется переменная
Форумы портала PHP.SU » » Вопросы новичков » Не формируется переменная

Страниц (1): [1]
 

1. nvrabotaru - 23 Декабря, 2016 - 07:13:39 - перейти к сообщению
Здравствуйте,
вопрос вот в чем.

Исходные данные
$s1=1;
$ups=1;

Переменная создается нормально
$poh="s$ups"; //формируем переменную s1

//Получается
if ($$poh==1)
{
//if ($s1==1) Условие выполняется! Все нормально
}



Теперь пробуем с GET-переменной

$_GET['s1']=1; //получили из другой страницы
$ups=1;

$poh1="_GET['s$ups']"; //формируем переменную $_GET['s1']

//Хотим сравнить ее с единицей. $_GET['s1']=1; Условие должно выполняться. НО!!!
if ($$poh1==1)
{
//if ($_GET['s1']==1) Условие УЖЕ НЕ выполняется! Второй день бьюсь. На форуме ничего не нашел. Наверное к глобальным переменным у PHP другой подход?
Ткните носом, пожалуйста.
}
2. Fart - 23 Декабря, 2016 - 07:27:05 - перейти к сообщению
1. $poh1= $_GET["s$ups"];
2. (если правильно понял то) $$poh1 - означает, что вы взяли имя переменой из $poh1 = 1, так как $poh1=$_GET['s1']=1 - а такой переменной нет. и машина выдает значение NULL
(Добавление)
3. чтобы проверить то
if($poh1==1)... как то так
3. nvrabotaru - 23 Декабря, 2016 - 08:16:04 - перейти к сообщению
Fart пишет:
1. $poh1= $_GET["s$ups"];
2. (если правильно понял то) $$poh1 - означает, что вы взяли имя переменой из $poh1 = 1, так как $poh1=$_GET['s1']=1 - а такой переменной нет. и машина выдает значение NULL
(Добавление)
3. чтобы проверить то
if($poh1==1)... как то так


Переменной poh1 присвоено значение $poh1="_GET['s$ups']"; БЕЗ ЗНАЧКА $ И ОНА НЕ РАВНА 1, как Вы пишете
Чтобы потом создать переменную $_GET['s$ups'] присвоив ей значение _GET['s$ups']
$$poh=$_GET['s1'] - УЖЕ СО ЗНАЧКОМ $ (она превращаетмя в переменную)
и
echo "<br>if ($$poh1==1)"; // Выдает if ($_GET['s1']==1) ИМЕННО ЭТО УСЛОВИ Е ДОЛЖНО ВЫПОЛНЯТЬСЯ НО НЕ ВЫПОЛНЯЕТСЯ

И нет, переменная $_GET['s1'] - есть ОНА РАВНА 1

Мне нужно, чтобы работало условие if ($_GET['s1']==1) Но переменных s- может быть до 20 (s1,s2,s3...s20), поэтому я хочу, чтобы в зависимости от того, какая из переменных придет с GET - запросом, (от s1 до s20), она подставилась в условие if ($_GET['s1 или s2 или s3 или s20']==1)
4. Sail - 23 Декабря, 2016 - 08:44:41 - перейти к сообщению
nvrabotaru пишет:
$poh1="_GET['s$ups']"; //формируем переменную $_GET['s1']

Используйте, например:
5. nvrabotaru - 23 Декабря, 2016 - 08:47:27 - перейти к сообщению
Sail пишет:
nvrabotaru пишет:
$poh1="_GET['s$ups']"; //формируем переменную $_GET['s1']

Используйте, например:


ОГРОМНОЕ СПАСИБО! ВСЕ ПРЕКРАСНО РАБОТАЕТ!!!

 

Powered by ExBB FM 1.0 RC1