2011-12-12 108 views
3

Possible Duplicate:
What is the name for the 「<<<」 operator?PHP操作<<<

我剛看到這個網站上的驗證碼

PHP for Beginners: Building Your First Simple CMS

的代碼是:

private function buildDB() { 
    $sql = <<<MySQL_QUERY 
     CREATE TABLE IF NOT EXISTS testDB (
      title  VARCHAR(150), 
      bodytext TEXT, 
      created  VARCHAR(100) 
    ) 
    MySQL_QUERY; 

    return mysql_query($sql); 
} 

我搜索了高低操作數「< < <」但我似乎無法找到任何地方的文檔!

如果這個操作數是 real我想知道它是如何工作的,因爲編寫像這樣的SQL查詢會使代碼更具可讀性並且會使SQL bug更容易找到!

也許我補充一點,我想這個代碼,並得到一個編譯錯誤:

Parse error: syntax error, unexpected $end in C:\Users\Alex Morley-Finch\Dropbox\Shared\Projects\htdocs\test\php\database.php on line 121 
+1

謝謝!我沒有意識到這是一個重複,因爲我不知道這是一個叫HEREDOC!投票結束 –

回答

5

heredoc syntax,最後一行(一結束標識符)不能被縮進,你必須做這樣的:

<?php 
     private function buildDB() { 
$sql = <<<MySQL_QUERY 
CREATE TABLE IF NOT EXISTS testDB (
    title  VARCHAR(150), 
    bodytext TEXT, 
    created  VARCHAR(100) 
) 
MySQL_QUERY; 

       return mysql_query($sql); 
     } 
+0

錯字:idented - >縮進:) – SERPRO

+0

完成:),謝謝.. – 2011-12-12 15:03:24

3

它被稱爲heredoc,你需要確保結尾行開始在該行的開始,所以沒有:

MySQL_QUERY; 

但:

MySQL_QUERY; 
1

<<<是HEREDOC。你可以閱讀關於它here。使用它時要記住的最重要的事情是最後一行不得有任何空格。