關於php雙引號的一點疑惑

來源:互聯網
上載者:User
既然雙引號可以解析變數,那麼為什麼要用點號串連的形式呢?
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']}";才是正確的。

當然使用.來拼接也是可以的。

謝謝哈
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.