我最近开始使用PHP,我正在尝试创建一个函数,它将返回我想要显示的内容。这意味着我需要将这些内容的值存储在每个case块的变量中,然后在结尾处返回该变量值。
<?php
function sidebarContent($id) {
switch ($id) {
case "21":
// how to store these values in a variable
<p>Hello ABC.</p>
<p class="content-register"><a href="/abc">Abc</a></p>
break;
case "31":
// how to store these values in a variable
<p>Hello DEF.</p>
<p class="content-register"><a href="/Def">Def</a></p>
break;
case "41":
// how to store these values in a variable
echo "Your favorite color is green!";
<p>Hello GHI.</p>
<p class="content-register"><a href="/Ghi">Ghi</a></p>
break;
default:
// how to store these values in a variable
<p>Hello World.</p>
}
// how do I return content here?
}
// call above function to test out
?>
我无法理解如何在变量中存储内容值然后在结尾处返回?
答案 0 :(得分:1)
将可打印的分配给变量,然后像这样返回:
<?php
function sidebarContent($id) {
switch ($id) {
case "21":
$return = '<p>Hello ABC.</p>
<p class="content-register"><a href="/abc">Abc</a></p>';
break;
case "31":
$return = '<p>Hello DEF.</p>
<p class="content-register"><a href="/Def">Def</a></p>';
break;
case "41":
$return = 'Your favorite color is green!";
<p>Hello GHI.</p>
<p class="content-register"><a href="/Ghi">Ghi</a></p>';
break;
default:
$return = '<p>Hello World.</p>';
}
return $return;
}
echo sidebarContent(31);
将打印:
Hello DEF.
Def
答案 1 :(得分:1)
您不必存储任何内容,您确实可以立即输出,除非您有进一步的过滤或处理步骤。那么你确实可以通过=运算符将字符串赋值给变量,或者你可以使用“output buffering”,或者如下所示直接返回文字标记。
如果您决定返回有效负载,那么我建议采用这种方法,它允许清晰的html标记仍然可读:
<?php
function sidebarContent($id) {
switch ($id) {
case 21:
return <<<EOT
<p>Hello ABC.</p>
<p class="content-register"><a href="/abc">Abc</a></p>
EOT;
case 31:
return <<<EOT
<p>Hello DEF.</p>
<p class="content-register"><a href="/Def">Def</a></p>
EOT;
case 41:
return <<<EOT
Your favorite color is green!
<p>Hello GHI.</p>
<p class="content-register"><a href="/Ghi">Ghi</a></p>
EOT;
default:
return <<<EOT
<p>Hello World.</p>
EOT;
}
}
echo sidebarContent(111);
请注意缺少关闭的php标记(?>
)。不要使用它。它会产生巨大的问题,在大多数情况下并没有真正帮助......
答案 2 :(得分:0)
更好的方法是尽可能简单地保存存储在变量中的数据,以便减少使用的内存。至于你的开关语句,我可以发现大多数情况都使用相同的格式,这导致我将每个案例的具体日期分开。
<?php
function sidebarContent($id) {
$name = 'World';
$extra = '';
switch ($id) {
case "21":
$name = 'Abc';
break;
case "31":
$name = 'Def';
break;
case "41":
$name = 'Ghi';
$extra = 'Your favorite color is green!';
}
return $extra . ' <p>Hello ' . strtoupper($name) . '.</p>' .
'<p class="content-register"><a href="/' . $name . '">' . $name . '</a></p>';
}
所以上面的代码说每个案例修改存储在2个变量中的数据(每个变量至少1个),然后返回我的HTML代码和存储变量的数据。这样您就可以保持代码清洁简单。
对此功能的调用可能如下:
echo sidebarContent(21); // Output the template
$my_sidebar = sidebarContent(21); // Store the template for later statements
注意:如果将此函数保留在没有HTML代码的PHP文件中, 您可以删除结束的PHP标记:?&gt;