PHP get方法总是1?

时间:2014-11-11 16:54:53

标签: php debugging web get

为什么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,在第一行代码中显示。 感谢您回答并帮助我建立网站。

3 个答案:

答案 0 :(得分:2)

isset($_GET['page'])
如果设置了isset

$_GET['page']将返回true或false。在这种情况下,php将true视为1。

使用实际值:

echo $_GET['page'];

您可以检查它是否设置了您可能的意图:

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

答案 1 :(得分:0)

你有一个错字:

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

应该是

switch($_GET['page']){

如果设置了页面,则isset($_GET['page'])始终为真(解释为1)。

答案 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