2012-08-27 31 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」; –