我对php世界很新。我在这个网站上搜索了我正在寻找的具体东西,却找不到它。
问题:我有一个页面,我想要一个标签,例如" User ="所以如果有一个url有index.php?u = Joe那么我想要" User = Joe"显示在该用户的页面上。
现在我已经毫无疑问地走到了那一步。我的问题是,如果有人在不使用?u = user值的情况下访问index.php,我仍想显示一些内容。
例如:如果网址中没有任何内容,那么我希望该网页说出" User = Unknown"。
我知道这可以用if语句完成,但我需要一些帮助,我找不到合适的概念。
感谢。
答案 0 :(得分:1)
使用isset()
测试是否已提供参数变量。
if (isset($_GET['u'])) {
$user = $_GET['u'];
} else {
$user = "Unknown";
}
echo "User = $user";
答案 1 :(得分:1)
您只需要检查该值是否设置为isset()
<?php
if(isset($_GET["u"]) && $_GET["u"] != ""){
$var = $_GET["u"];
} else{
$var = "Joe";
}
?>
答案 2 :(得分:0)
与其他答案类似,但我更喜欢array_key_exists
而不是isset
。
if (array_key_exists('u', $_GET))
原因是array_key_exists
特定于数组,并且具有比isset
更少的“神奇”异常。
答案 3 :(得分:0)
我建议使用filter_input($input_type,$input_var_name)
来获取变量的值。这是因为如果找不到变量,则返回false。如果从数组中提取它,则会抛出错误。你可以使用这样的东西:
$user = filter_input(INPUT_GET,'u');
$user = !isset($user) ? 'Unknown' : $user;
但是,您应该将其封装在一个函数中,这样您就不必在每次需要用户名时都重写它。事实上,如果您需要在多个页面中保留用户名,我建议您使用Cookie。
答案 4 :(得分:0)
这可以解决问题:快速而简单..
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.
}