我希望使用函数links()在导航栏中登录或注册后显示用户名,但保存用户名的变量不会显示,只显示" $ acn";
function links()
{
if(!isset($_SESSION['username']))
{
echo ' <div class="collapse navbar-collapse" id="signup">
<!--<form class="navbar-form navbar-right" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>-->
<ul class="nav navbar-nav navbar-right" id="signup">
<li><a href="signup.php"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
<li><a href="index.php"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
</ul>
</div>';
}
else
{
$acn= $_SESSION['username'];
echo '<div class="collapse navbar-collapse" id="signup">
<ul class="nav navbar-nav navbar-right" id="signup">
<li><a href=\"account.php\"> $acn </a></li>
<li><a href="logout.php"><span class="glyphicon glyphicon-log-out"></span> Log Out</a></li>
</ul>
</div>';
}
}
,功能如下所示
<nav class="navbar navbar-inverse" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">OOOO</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#signup">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<?php echo links(); ?>
</div>
</nav>
如何实现这一目标,谢谢。
答案 0 :(得分:1)
在PHP中,如果你有一个用单引号包装的字符串,则不会解析变量。
'$acn'
只是一个值为$acn
的字符串。 "$acn"
将被解析为$acn
变量的值。
请注意,您正在回显links()
函数的输出,但该函数没有返回值。
答案 1 :(得分:0)
虽然$acn
使用double quotes
可以在single quotes
中正常工作,但在single quotes
中包含时,它的行为并不相同。
如果您希望使用 <li><a href=\"account.php\"> '.$acn.' </a></li>
,则必须连接字符串:
single quotes
您的代码需要注意的其他事项,在使用double quotes
时,您不需要转义echo
,links
函数内也有<?php echo links(); ?>
,所以它不是这里需要:{{1}}