所以,我有一些看起来像这样的PHP代码:
<body>
The ID is
<?php
echo $_GET["id"] . "!";
?>
</body>
现在,当我传递像http://localhost/myphp.php?id=26
这样的ID时,它可以正常工作,但如果没有像http://localhost/myphp.php
那样的ID,那么它会输出:
The ID is
Notice: Undefined index: id in C:\xampp\htdocs\myphp.php on line 9
!
我已经找到了修复此问题的方法,但我找不到任何方法来检查是否存在网址变量。我知道必须有办法。
答案 0 :(得分:129)
您可以使用isset
功能:
if(isset($_GET['id'])) {
// id index exists
}
如果索引不存在,您可以创建一个方便的函数来返回默认值:
function Get($index, $defaultValue) {
return isset($_GET[$index]) ? $_GET[$index] : $defaultValue);
}
// prints "invalid id" if $_GET['id'] is not set
echo Get('id', 'invalid id');
您也可以尝试同时验证它:
function GetInt($index, $defaultValue) {
return isset($_GET[$index]) && ctype_digit($_GET[$index])
? (int)$_GET[$index]
: $defaultValue);
}
// prints 0 if $_GET['id'] is not set or is not numeric
echo GetInt('id', 0);
答案 1 :(得分:17)
if (isset($_GET["id"])){
//do stuff
}
答案 2 :(得分:9)
通常这样做很好:
echo isset($_GET['id']) ? $_GET['id'] : 'wtf';
在将var分配给其他变量时,您可以一次性默认默认值,而不是不断使用if
语句,只要未设置默认值即可。
答案 3 :(得分:6)
您可以使用array_key_exists()
内置功能:
if (array_key_exists('id', $_GET)) {
echo $_GET['id'];
}
或isset()
内置函数:
if (isset($_GET['id'])) {
echo $_GET['id'];
}
答案 4 :(得分:5)
答案 5 :(得分:4)
使用和empty()
丝毫否定(如果不是空的话,进行测试)
if(!empty($_GET['id'])) {
// if get id is not empty
}
答案 6 :(得分:0)
请尝试一下:
if(isset($_GET['id']) && !empty($_GET['id'])){
echo $_GET["id"];
}