0

有没有办法回显一个已经回显的变量,我尝试这样做,但它没有回显它

if (logged_in() === true) {
            echo
            '

<li ><a href="#">',$user_data['username'],'</a>
<ul>
    <li><a href="../social.php">socail</a></li>
    <li><a  href="../my/pictures.php">my pictures</a></li>
    <li><a  href="../profile.php">profile</a></li>
    <li><a href="../logout.php">logout</a></li>
</ul>   ';
        } else {
            include'cpages/cmain/menuforms/formsmenu.php';

        } 
4

3 回答 3

1
        if (logged_in() === true) {
            echo
            '

<li ><a href="#">'.$user_data['username'].'</a>
<ul>
    <li><a href="../social.php">socail</a></li>
    <li><a  href="../my/pictures.php">my pictures</a></li>
    <li><a  href="../profile.php">profile</a></li>
    <li><a href="../logout.php">logout</a></li>
</ul>   ';
        } else {
            include'cpages/cmain/menuforms/formsmenu.php';

        } 
于 2012-08-27T19:59:57.407 回答
1

你是说串联吗?

<li ><a href="#">' . $user_data['username'] . '</a>
于 2012-08-27T20:00:05.380 回答
0

你连接字符串错误,你应该使用点:

编辑

经过一番谷歌搜索后,我发现用逗号连接显然也可以,我不知道......

 echo "text".$variable."text".$variable2; //and so on.

编辑 2

显然,echo 可以采用多个参数,当您通过用逗号分隔值来传递值时会发生这种情况。然后它不是真正的字符串连接,用户 ACJ 指出了这一点。

但是,在这种情况下,我仍然会使用 HEREDOC 或将字符串连接到一个变量,然后将其回显。

需要注意的是您是否正确转义了双引号和单引号,这是处理长字符串时的常见问题,尤其是包含 html 的字符串。

此外,您可能想查看 Heredoc:

$variable = <<<EOT 
    Place your multiline string here 
    and dont forget to end it with the same as you started it.
EOT; //Must not be indented

您还应该查看这个问题:Best practice working with long strings in PHP

好的,所以要真正解决您的问题,假设您已经检查过 logged_in() 的计算结果确实为true,那么我能想到的唯一问题是 $user_data 不包含名为username.

我首先通过在文件顶部调用以下命令来启用 error_reporting:

error_reporting(E_ALL | E_STRICT) //reports all errors.

然后你应该很快就知道你的代码出了什么问题,因为它在我的电脑上运行得很好。

于 2012-08-27T20:03:49.150 回答