Почему значение метода 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, показанное в первом строчном коде. Спасибо, что ответили и помогли мне сделать сайт.
isset($_GET['page'])
isset
возвращает true или false, если задано $_GET['page']
. В этом случае php обрабатывает true как 1.
Используйте фактическое значение:
echo $_GET['page'];
Вы можете проверить, установлен ли он, который, скорее всего, вам нужен:
if(isset($_GET['page'])){
//Do stuff with $_GET['page']
}
См. 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
У вас есть опечатка:
switch(isset($_GET['page'])){
должно быть
switch($_GET['page']){
as isset($_GET['page'])
всегда истинно (интерпретируется как 1), если страница установлена.