2012-08-27 29 views
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'; 

     } 
+0

正如@minitech指出的,这实际上是语法正确的 - 你确定'$ user_data ['username']'设置正确吗? – andrewsi

回答

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

     } 
+0

非常感谢您的帮助:) –

+0

不客气。如果你喜欢,你可以接受答案。 :) – GolezTrol

+1

对不起,这两者有什么区别? 'echo'也可以使用逗号... – Ryan

1

你是指串联?

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

你串联串错了,你应该用点:

编辑

一些谷歌上搜索,我发现之后,它显然也可以与逗号来连接,我做不知道......

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

EDIT 2

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

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

要寻找的东西是你正确地转义双引号和单引号,这是使用长字符串时的常见问题,特别是包含html的字符串。

而且你可能想看看定界符:

$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. 

然后你应该得到相当快速的答案,什么是你的代码错误,因为它只是运行在我的电脑上很好。

+0

不,'echo'需要可变数量的参数。 – Ryan

+0

+1 HEREDOC – andrewsi

+0

@Minitect然后再次连接:echo“foo”。$ a1。“bar”。$ a2。“baz”; –