我该如何用PHP编写以下语句:
如果body的ID为"home",则插入一些HTML,例如:
否则,请插入以下html代码:
如果body的ID为"home",则插入一些HTML,例如:
<h1>I am home!</h1>
否则,请插入以下html代码:
<p>I'm not home.</p>
<h1>I am home!</h1>
<p>I'm not home.</p>
使用原生PHP模板实现:
<?php if ($bodyID==='home') { ?>
<h1>I am home!</h1>
<?php } else { ?>
<p>I'm not home!</p>
<?php } ?>
$html = '';
if ( $body_id === 'home' )
{
$html .= '<h1>I am home!</h1>';
}
else
{
$html .= '<p>I\'m not home.</p>';
}
echo $html;
这将根据 $body_id 变量及其包含的内容回显 HTML 代码。
'123'==' 123'
。@etbal:我会避免将输出 HTML 放在字符串中。这只会增加额外的转义层需要担心。PHP 是一种模板语言,最好使用它。 - bobince,则
$body_id`必须是一个字符串。 - Hannes==
不是字符串比较,它是一种疯狂的分裂的东西,在这种特定情况下可能不会出错,但在其他情况下肯定会出错。它是不可靠的,使用应该是例外而不是规则。 - bobinceswitch($body)
{
case 'home': //$body == 'home' ?
echo '<h1>I am home!</h1>';
break;
case 'not_home':
default:
echo '<p>I'm not home.</p>';
break;
}
default
表示如果 $body
不匹配任何 case
值,则会使用它,default
是可选的。
另一种方法就像你所说的,使用 if
/else
语句,但如果在模板/视图页面中,应该尝试使用以下方式:
<?php if ($body == 'home'):?>
<h1>I am home!</h1>
<?php else:?>
<p>I'm not home!</p>
<?php endif; ?>
<?php
if ($bodyID==='home') {
echo "<h1>I am home!</h1>";}
else {
echo "<p>I'm not home!</p>";}
?>
个人而言,我认为在不刷新页面、也不需要设置变量(如 $body 或类似的)的情况下实现这一点的最佳方法是使用JavaScript代码,因为JS和PHP之间的“通信”是单向的。
<script language="javascript"></script>
你可以尝试以下方式:
$body_id = "home";
if ($body_id == "home") {
echo "I am home!";
} else {
echo "I am not home!";
}
或者
$body_id = "home";
if (strcmp($body_id, "home") !== 0) {
echo 'I am not home!';
}
else {
echo 'I am home!';
}
参考:
https://www.geeksforgeeks.org/string-comparison-using-vs-strcmp-in-php/
==
作为相等检查,而不是使用Identical
。因为您不知道OP是否正在使用使用__tostring()
的对象。 - RobertPitt__tostring()
的对象是相等的呢?这似乎会引起更多的错误而不是解决问题。(就我个人而言,如果我将字符串与非字符串进行比较,我更喜欢抛出异常,因为这几乎肯定意味着我犯了一个错误。)同时,等号操作符带来了一些严重的问题(例如字符串作为数字进行比较),这是我绝对不想要的。更可能正确的比较器是===
。 - bobince$bodyID
实际包含什么?它是否被执行了? - bobince