你怎么能回应已经回响东西的回声中的变量

时间:2012-08-27 19:57:59

标签: php echo

有没有办法回应一个已经回响某个东西的变量,我尝试这样做,但它没有回应它

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';

        } 

3 个答案:

答案 0 :(得分: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';

        } 

答案 1 :(得分:1)

你的意思是串联吗?

<li ><a href="#">' . $user_data['username'] . '</a>

答案 2 :(得分: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 practices working with long strings in PHP

好的,实际上是为了解决你的问题,假设你已经检查过看到logged_in()真的评估为true,那么我能想到的唯一问题是$ user_data不包含密钥名为username

我首先通过调用文件顶部的以下内容启用error_reporting:

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

然后你应该快速回答你的代码有什么问题,因为它在我的计算机上运行得很好。