$ _GET显示空值

Raf*_*fee 1 php

我有一个test.php,我有以下代码

<?php

    if(isset($_GET['p']) or $_GET['p'] != null) {
        echo $_GET['p'];
    } else {
        echo "Not found";
    }

?>
Run Code Online (Sandbox Code Playgroud)

我列出了下面的网址然后要求输出显示

Test 1 : http://localhost/example/test.php
output : Notice: Undefined index: p in R:\xampp\htdocs\example\test.php on line 3
        Not found


Test 2 : http://localhost/example/test.php?p
output : blank page



Test 3 : http://localhost/example/test.php?p=
output : blank page


Test 4 : http://localhost/example/test.php?p=1
output : 1
Run Code Online (Sandbox Code Playgroud)

我承认,Test 1和Test 2是true 但当Test 2并Test 3失败了解决办法.

Ste*_*fan 5

<?php

if(!empty($_GET['p']))
    echo $_GET['p'];
else
    echo "Not found";
?>
Run Code Online (Sandbox Code Playgroud)

  • 这是最正确的,因为它更明显地做了什么.由于`isset`已经检查了NULL值,有些人可能会被其他答案中的NULL检查混淆(因为它是松散的比较所需要的,因此它也会检查其他"空虚").因此,这是最易读和最易维护的答案! (3认同)
  • 请记住,它会打印出"未找到"... test.php?p = 0. (2认同)