<?php
session_start();
error_reporting(E_ALL);
$id = $_SESSION["id"];
$name = $_SESSION["name"];
$surname = $_SESSION["surname"];
if (!empty($id)) {
echo "<div id='"user'">";
echo "<h4>Utente: $name $surname | <a href='"http:/...'">Logout</a></h4>";
echo "</div>";
}
?>
问题:
注意:未定义的索引:id 在...在第 4
行 注意:未定义的索引:名称在...在第 5
行 注意:未定义的索引:姓氏...在第 6 行
所以我尝试:
<?php
session_start();
error_reporting(E_ALL);
if (!empty($_SESSION["id"])) {
echo "<div id='"user'">";
echo "<h4>Utente: $_SESSION["name"] $_SESSION["surname"] | <a href='"http:/...'">Logout</a></h4>";
echo "</div>";
}?>
但:
解析错误:语法错误、意外的"、预期T_STRING或 T_VARIABLE或T_NUM_STRING...在第 7 行
为什么?
错误消息说明了一切:这意味着这些变量未设置(即不存在)。在尝试使用它们之前,您需要检查它们是否存在:
$id = ($_SESSION["id"]) ?: null;
$name = ($_SESSION["name"]) ?: null;
$surname = ($_SESSION["surname"]) ?: null;
如果您运行的版本早于 PHP 5.3,则需要使用更长的语法:
$id = (isset($_SESSION["id"])) ? $_SESSION["id"] : null;
$name = (isset($_SESSION["name"])) ? $_SESSION["name"] : null;
$surname = (isset($_SESSION["surname"])) ? $_SESSION["surname"] : null;
对于解析
错误:语法错误,意外,您可以使用
echo "<h4>Utente: ".$_SESSION["name"] .$_SESSION["surname"] ."| <a href='"http:/...'">Logout</a></h4>";
而不是
echo "<h4>Utente: $_SESSION["name"] $_SESSION["surname"] | <a href='"http:/...'">Logout</a></h4>";
更新的代码:
<?php
session_start();
error_reporting(E_ALL);
if (!empty($_SESSION["id"]) && isset($_SESSION["id"])) {
echo "<div id='"user'">";
echo "<h4>Utente: ".$_SESSION["name"] .$_SESSION["surname"] ."| <a href='"http:/...'">Logout</a></h4>";
echo "</div>";
}
?>
利用 isset() 构造
<?php
session_start();
error_reporting(E_ALL);
if(isset($_SESSION["id"]))
{
$id = $_SESSION["id"];
}
if(isset($_SESSION["name"]))
{
$name = $_SESSION["name"];
}
if(isset($_SESSION["surname"]))
{
$surname = $_SESSION["surname"];
}
if (!empty($id)) {
echo "<div id='"user'">";
echo "<h4>Utente: $name $surname | <a href='"http:/...'">Logout</a></h4>";
echo "</div>";
}
?>