我需要转换其他人完成的代码,才能在我的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);
这是关于如何制作$项目的一些背景知识。 项目存储如下:
$_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语法,我不太确定。
如果我知道有些事情正在做他们想要的事情并给出正确的输出,那可以节省我一些时间。
谢谢,理查德答案 0 :(得分:1)
这称为 heredoc 。它就好像里面的所有文本都是单个字符串一样。如果您尝试生成JSON,请不要使用它。相反,请使用这样的事实:语句在完成分号之前不会完成:
$somevar = {
"s": "1",
"f": "{$to}",
"m": "{$messagesan}"
};