отладка — PHP метод get всегда 1?

Почему значение метода php get всегда равно 1? Вот мой код

echo isset($_GET['page']);
switch(isset($_GET['page'])){
case 'a':
echo '1';
break;
case 'b':
echo 2'';
break;
case 'c':
echo '3';
break;
case 'd':
echo '';
break;
case 'e':
echo '4';
break;
default:
echo '5';
}

И значение метода get всегда 1, показанное в первой строке кода.
Спасибо, что ответили и помогли мне сделать сайт.

0

Решение

isset($_GET['page'])

isset возвращает true или false, если $_GET['page'] установлено. В этом случае php рассматривает true как 1.

Используйте фактическое значение:

echo $_GET['page'];

Вы можете проверить, установлен ли он, что вполне вероятно, что вы хотели:

if(isset($_GET['page'])){
//Do stuff with $_GET['page']
}
2

Другие решения

У вас есть опечатка:

switch(isset($_GET['page'])){

должно быть

switch($_GET['page']){

как isset($_GET['page']) всегда истинно (интерпретируется как 1), если задана страница.

0

См 1 печатает в первом утверждении, т.е.

echo isset($_GET['page']);

isset () вернет 0 или 1, поэтому вы получаете 1 всегда!

Вторая вещь, одна ошибка в вашем случае переключения:

switch(isset($_GET['page'])) // wrong because will pass only 0 or 1 in switch case

switch($_GET['page']) // Right will pass the URL page parameter value i.e .php?page=a here a will pass in switch statement
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector