既然雙引號可以解析變數,那麼為什麼要用點號串連的形式呢?
echo "Logged in as ".$_SESSION['valid_user']."";
為什麼不可以用
echo "Loggin in as $_SESSION['valid_user']";
回複討論(解決方案)
兩種格式都可以啊,用 . 隔開可以更好的區分變數,自己的代碼習慣,兩種寫法都可以的
兩種格式都可以啊,用 . 隔開可以更好的區分變數,自己的代碼習慣,兩種寫法都可以的
那我一開始使用第二種用法就會報錯。
echo "Logged in as $_SESSION['valid_user']";
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
echo "Loggin in as $_SESSION['valid_user']"; //文法錯,沒辦法 php 就這麼約定的echo "Loggin in as {$_SESSION['valid_user']}"; //正確echo "Loggin in as $_SESSION[valid_user]"; //正確echo "Loggin in as {$_SESSION[valid_user]}"; //正確,有未定義常量的警告
echo "Loggin in as $_SESSION['valid_user']"; //文法錯,沒辦法 php 就這麼約定的echo "Loggin in as {$_SESSION['valid_user']}"; //正確echo "Loggin in as $_SESSION[valid_user]"; //正確echo "Loggin in as {$_SESSION[valid_user]}"; //正確,有未定義常量的警告
這,,親知道為啥第一種文法錯的原因嗎?
echo "Loggin in as $_SESSION['valid_user']";
和echo "Loggin in as $_SESSION[valid_user]"; 就差了個數組名中索引沒有用''呀。。。
要知道具體的原因,請研讀 php 源碼的文法解譯器代碼
只是一種代碼書寫習慣,本質上是沒有誰對誰錯的。只是給閱讀的人形成一種潛意識的閱讀習慣
php文法中,在字串中插入變數的標準寫法是 {$var}
所以 echo "Loggin in as {$_SESSION['valid_user']}";才是正確的。
當然使用.來拼接也是可以的。
php文法中,在字串中插入變數的標準寫法是 {$var}
所以 echo "Loggin in as {$_SESSION['valid_user']}";才是正確的。
當然使用.來拼接也是可以的。
謝謝哈