关于here document

关于here document

请高手解释一下下面这段代码,谢谢

主要是<< "",应该是here document“吧?
但感觉很奇怪,为什么可以这样用呢?

return << "";
SELECT
    `server_name`
  , `datatype`
  , `timestamp`
  , `value`
FROM
  `$table` AS `sgdb`
WHERE 1=1
  AND `server_id` = (SELECT `server`.`id`
                     FROM   `Symbols` AS `server`
                     JOIN   `Servers` AS `s`
                       USING ( `id` )
                     WHERE  `server`.`name` = ?  )
少了一行""
Here Document本来就是这么用的


QUOTE:
原帖由 churchmice 于 2008-5-28 12:43 发表
Here Document本来就是这么用的

print <<EOF
The price is xxx.
EOF

我之前见过的都是这种格式的,有一个明显的结束标志。


QUOTE:
原帖由 Nosferatu 于 2008-5-28 12:24 发表
少了一行""

源代码就是这样子的。
那段代码的结束标志就是"",也就是空白
所以结束标志是一个空行
更恶心的可以写成这样

[Copy to clipboard] [ - ]
CODE:
print <<;
this is a test

只不过这种写法已经deprecated了
here的标志就是空白,结束标志就是一个空行
非常感谢,想起来了!

刚才一直都把自己绕在sql的语法里面了。

呵呵
在这里整个
SELECT
    `server_name`
  , `datatype`
  , `timestamp`
  , `value`
FROM
  `$table` AS `sgdb`
WHERE 1=1
  AND `server_id` = (SELECT `server`.`id`
                     FROM   `Symbols` AS `server`
                     JOIN   `Servers` AS `s`
                       USING ( `id` )
                     WHERE  `server`.`name` = ?  )
当成一个字串.

最后有一个空行..代表字串结束..