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

この質問も確認する必要があります: PHP で長い文字列を操作するベスト プラクティス

さて、実際に問題を解決するには、logged_in() が実際に評価されることを確認したと仮定するとtrue、考えられる唯一の問題は、 $user_data という名前のキーが含まれていないことusernameです。

ファイルの先頭で次のように呼び出して、error_reporting を有効にすることから始めます。

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

そして、私のコンピューターで問題なく動作するため、コードの何が問題なのかについて非常に迅速な回答が得られるはずです。

于 2012-08-27T20:03:49.150 に答える