我对php世界还很陌生。我在这个网站上搜索了我要找的具体东西,但找不到。
问题:我有一个页面,我想要一个标签,比如"User=",那么如果有一个url有index.php?u=Joe,那么我希望"User=Joe"出现在该用户的页面上。
现在,我已经毫无问题地走到了这一步。我的问题是,如果有人在没有?u=用户值。
例如:如果url中没有任何内容,那么我希望页面显示"用户=未知"。
我知道这可以用if语句来完成,但我需要一些帮助——我找不到正确的概念。
谢谢。
使用isset()
测试是否提供了参数变量。
if (isset($_GET['u'])) {
$user = $_GET['u'];
} else {
$user = "Unknown";
}
echo "User = $user";
您只需要检查该值是否使用isset()设置
<?php
if(isset($_GET["u"]) && $_GET["u"] != ""){
$var = $_GET["u"];
} else{
$var = "Joe";
}
?>
与其他答案类似,但我更喜欢array_key_exists
而不是isset
。
if (array_key_exists('u', $_GET))
原因是array_key_exists
是特定于数组的,与isset
相比没有那么"神奇"的异常。
这样做很简单快捷。。
if($_GET['u']!=''){
echo 'user = '.$_GET['u']; // The parameter has been set, and is not empty.
} else {
echo 'Unknown user'; // The parameter has not even been set. So the value has no impact, and is not checked.
}
我建议使用filter_input($input_type,$input_var_name)
来获取变量的值。这是因为如果找不到变量,则返回false。如果您从数组中提取它,它将抛出一个Error。你可以使用这样的东西:
$user = filter_input(INPUT_GET,'u');
$user = !isset($user) ? 'Unknown' : $user;
但是,您应该将其封装在一个函数中,这样您就不必每次需要用户名时都重写它。事实上,如果您需要在多个页面上保持用户名,我建议您使用cookie。