php代码if-then-else标记



我对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。

最新更新