提问人:Yaro-Maro 提问时间:7/6/2021 最后编辑:Yaro-Maro 更新时间:7/7/2021 访问量:98
为什么在 HTML 属性中使用 PHP 块时会出现这样的问题?
Why is there such a problem when using PHP block inside of HTML attribute?
问:
我要问这个问题很简单。
在下面的示例中,() {} 括号按预期工作,并在我的编辑器 (atom) 中适当着色:
<p> "<?php if(){} ?>" </p>
在下面的例子中,在我的编辑器(atom)中,() {} 括号没有按照它们的颜色着色:
<p name= "<?php if(){} ?>" ></p>
在下面的代码中,() {} 的颜色不合适,但函数有效(true 和 false):
<p name=" <?php if (TRUE) { echo "it is ok" } else { echo "it is not ok" } ?> "></p>
所以一切都很好,对吧?这只是语法突出显示问题,对吧?错! 如果我输入这个......
<?php if (FALSE) { ?> <input value=" <?php echo "it is ok"; } ?> ">
...如果为 FALSE,则浏览器输出“>输入字段所在的位置。 (如果为 TRUE,则它显示您期望的内容,即值为“it is ok”的输入字段。
- 但为什么呢?有两个不同的 php 块。
- 这只是属性内部的问题。不在 HTML 中的其他引号中。
- 如何解决这个问题?
非常感谢您的帮助!
答:
1赞
BRABO
7/6/2021
#1
你的最后一句话是
<?php if (FALSE):?>
<input value="it is ok">
<?php endif;?>
内嵌
<?php if (FALSE):?><input value="it is ok"><?php endif;?>
评论
0赞
Yaro-Maro
7/7/2021
嘿,谢谢伙计。我确实找到了这种写法,并且可以在这种情况下使用它。我只是想抓住基本面。在上面的示例中,if 语句不应激活,因此您会得到 <input value=“”>。所以我不明白为什么是“剩下的>。我知道一个事实,你可以将PHP函数拆分到许多块中。为什么人们将我标记为 -2“没有用或没有研究的问题”是没有道理的,当我尽了最大努力研究我的问题并将其消化到最基本的情况下。那么,我们该如何在这里提出问题呢?
0赞
Yaro-Maro
7/7/2021
#2
无论如何,我找到了。对我来说有意义的最好的方法是:
<?php if (FALSE): ?> <input value="<?php echo $validId; ?>"> <?php endif; ?>
或者,换句话说
<?php if (FALSE){ ?> <input value="<?php echo $validId; ?>"> <?php } ?>
我可以呼应整个事情,但我只想呼应价值。如果你把右括号放在HTML引号外面,那么你就可以了。
对我来说,为什么人们会把它记下来,当我研究得如此之好,并如此清楚地呈现它时,这是没有道理的。这通常在大多数情况下有效,但在 HTML 属性引号中,php 的行为格外奇怪。这是我迄今为止的发现。
0赞
Barmar
7/7/2021
#3
在
<?php if (FALSE) { ?> <input value=" <?php echo "it is ok"; } ?> ">
最后不在体内。所以它是无条件打印的。因此,当条件失败时(因为它必须如此),您不会打印开头,但您仍然打印 ,这是不匹配的,并产生无效的 HTML。">
if
FALSE
<input
">
评论
0赞
Yaro-Maro
7/9/2021
嘿,谢谢伙计!实际上,我今天刚刚意识到这一点。哈哈有一个尤里卡时刻。非常感谢您的简单解释。
评论
">
if (FALSE)