PHP метод получения всегда 1?

0

Почему значение метода 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, показанное в первом строчном коде. Спасибо, что ответили и помогли мне сделать сайт.

Теги:
debugging
web
get

3 ответа

2
Лучший ответ
isset($_GET['page'])

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

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

echo $_GET['page'];

Вы можете проверить, установлен ли он, который, скорее всего, вам нужен:

if(isset($_GET['page'])){
    //Do stuff with $_GET['page']
}
  • 0
    спасибо человек, но я должен ждать 12 минут, чтобы принять это: D
  • 0
    Это реальный ответ, и я приму его
Показать ещё 2 комментария
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

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

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

должно быть

switch($_GET['page']){

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню