【发布时间】:2010-03-30 01:26:04
【问题描述】:
我需要转换一些其他人完成的代码,以便在我的 mvc 模型中工作
它正在使用一些我不理解的功能,例如 EOD。这在课堂上仍然有效吗?
我的问题主要集中在 json 输出上。
旧代码没有使用php的json_encode函数,而是这样直接输出
?>
{
"username": "<?php echo $_SESSION['username'];?>",
"items": [
<?php echo $items;?>
]
}
<?php
我会这样做,但我需要确保它适合物品部分
header('Content-type: application/json');
$output = array("username"=> isset( $_SESSION['username'] ) ? $_SESSION['username'] : "?",
"items"=>$items
);
$this->content = json_encode($output);
这是有关如何制作 $items 的一些背景知识。 一个项目是这样存储的:
$_SESSION['chatHistory'][$_POST['to']] .= <<<EOD
{
"s": "1",
"f": "{$to}",
"m": "{$messagesan}"
},
EOD;
它像这样放在 $items 变量中
$items = '';
if ( !empty($_SESSION['openChatBoxes'] ) ) {
foreach ( $_SESSION['openChatBoxes'] as $chatbox => $void ) {
$items .= $this->chatBoxSession($chatbox);
}
}
//The chatBoxSession() function takes an item from the $_SESSION['chatHistory'] array and returns it.
我希望这已经足够清楚了吗? php 手册警告说,在某些情况下,您不会得到数组输出,而是得到一个对象。所以,对于 EOD 语法,我不太确定。
如果我知道有些事情也在做他们应该做的事情并给出正确的输出,这可以节省我一些时间。
谢谢,理查德
【问题讨论】:
-
EOD 只是 HEREDOC(或 NOWDOC)语法,不是吗?
-
类似的东西,但我不是很喜欢我仍然需要阅读那个 php 手册页