Php 如果还需要解释的话
我在php中编写了一段代码,发现这样的代码有一个问题:Php 如果还需要解释的话,php,Php,我在php中编写了一段代码,发现这样的代码有一个问题: <?php if(isset($_GET['f'])) { ?> <?php if($_GET['f']=="message_reçus") { ?> -- another code here -- <?php } ?> <?php } ?> <?php else { ?> --这里是另一个代码-- 但当我这样写的时候: <?php
<?php if(isset($_GET['f'])) { ?>
<?php if($_GET['f']=="message_reçus") { ?>
-- another code here --
<?php } ?>
<?php } ?>
<?php else { ?>
--这里是另一个代码--
但当我这样写的时候:
<?php if(isset($_GET['f'])) { ?>
<?php if($_GET['f']=="message_reçus") { ?>
-- another code here --
<?php } ?>
<?php } else { ?>
--这里是另一个代码--
它起作用了
我需要一个关于第一个版本中问题的原因的清晰解释,因为我仍然相信两个版本在语法上都是正确的
PHP解析器向我显示:解析错误:语法错误,意外的'else'(T_else)
我不需要任何替代解决方案,我只是想知道为什么在第一个版本中会出现问题,以及它有什么问题 思考这个问题的一种方法是替换
?> @NietTheDarkAbsol在另一个答案中详细描述了该问题。我添加这个答案是为了通过删除它来添加问题的替代解决方案
问题被解释了(@NietTheDarkAbsol答案描述了这一点)
通过分隔您在\n
或新行中添加的行,而else
必须始终位于开口if
的右括号之后
<?php if ($a === $b) { ?>
<?php } ?>
<?php else { ?>
由于您的代码现在不依赖于花括号,所以在等待endif
,else:
或elseif(…):
block.请修复非信息标题。对于类似的内容,请使用其他语法-更易于阅读。“有问题”???是的!真奇怪。Php解析器告诉我:解析错误:语法错误,意外的'else'(T_else)请把这个细节放在问题中。这是一个有趣的类比,但似乎只不过是一个类比。我不知道一个更专业的答案会是什么样子,请注意。去他妈的,这就行了
不会打印“\n”。@CooPer详细信息可能会有所不同-iirc?>\n
不会输出尾随的换行符,但即使这样,您仍然会有echo”“代码>(空字符串)干扰了if/else对。@NiettheDarkAbsol这是真的,我们可以想象?>是的,这很好,但我需要解释一下为什么它不能在上面工作!尼特在回答中解释了这一点。通过分隔您在\n
或新行中添加的行,而else
必须始终位于开口if
的右括号之后。
<?php if ($a === $b) { ?>
<?php } ?>
<?php else { ?>
<?php if(isset($_GET['f'])) : // Colon instead of an '{' ?>
<?php if($_GET['f']=="message_reçus") : ?>
<!-- HTML here -->
<?php else : ?>
<!-- alternative HTML here -->
<?php endif; // endif; instead of an '}' ?>
<?php endif; ?>