我发出错误声明"注意:未定义的变量:user_data"只有当没有人登录时,当有人登录时,它会显示Hello(用户名)
以下是回显名称的代码
"Hello, <?php echo $user_data['first_name']; ?>!"
无论如何,当没有用户登录时,它只能打招呼,而不是错误消息。
感谢。
答案 0 :(得分:2)
是的,只是:
Hello <?php echo isset($user_data['first_name']) ? ", ".$user_data['first_name']: ''; ?>!
答案 1 :(得分:2)
在使用之前检查变量是否存在,
$username = isset($user_data['first_name']) ? $user_data['first_name'] : "";
echo "Hello ".$username ."!";
答案 2 :(得分:0)
我觉得以前的答案并没有真正解释发生了什么,所以我会在这里尝试更详细。
他们两个人做的是使用ternary operator
,我喜欢将其称为&#34;如果&#34;,您可以将其视为一行上的以下片段:
if ($condition) {
echo "this";
} else {
echo "that";
}
或者,使用三元运算符:
echo $condition ? "this" : "that"; // prints this if condition is true, that if false.
你真正需要解决的问题是检查你的变量是否设置了isset
,isset检查是否设置了变量,所以在if条件下使用它会解决你的错误。
示例,以及您问题的答案:
if (isset($user_data['first_name'])) {
echo 'Hello, ' . $user_data['first_name'];
} else {
echo 'Hello!';
}
因此,虽然三元运算符在这里使用起来更方便,但不需要解决您的问题,只需要检查isset
以验证它是否已设置,是否需要。
尽管如此,他们两个确实解决了你的问题,它的可读性更低,而且可能有点令人困惑。