在网站的整个页面中使用PHP代码和HTML时,是否更快地陈述条件而不是定义整个页面,或者在页面的不同部分继续回到那个条件?例如:
<?php if(isset($_SESSION['token'])) { ?>
<html> Lots of HTML </html>
<?php } else if (!isset($_SESSION['token'])) { ?>
<html> Lots of HTML </html> <?php } ?>
所以我在这里基本上用不同的东西定义整个页面两次,具体取决于用户是否登录。
或者我可以做..
<?php if(isset($_SESSION['token'])) $loggedIn = true;
else if (!isset($_SESSION['token'])) $LoggedIn = false; ?>
<html>
Some HTML stuff ...
<?php if($LoggedIn == true) echo "<div>You are now logged in</div>";
else if($LoggedIn == false) echo "<div>Please log in to continue</div>"; ?>
Some more HTML ...
<?php if($LoggedIn == true) // Etc. ?>
</html>
在这里,我只是回顾用户是否登录了相同的HTML标签并显示相应的内容。
此外,任何人都可以告诉我它是否更适合echo
HTML,或者只是切断PHP,使用普通的HTML,然后重新打开PHP并关闭括号。
我试图尽可能清楚,但发现很难。
答案 0 :(得分:3)
使用第二种变体;重复的东西很糟糕。但请注意,你可以写得更简洁:
<?php $loggedIn = isset($_SESSION['token']); ?>
<html>
..some html stuff..
<?php if($LoggedIn) echo "<div>You are now logged in</div>";
else echo "<div>Please log in to continue</div>"; ?>
..some more html...
<?php if($LoggedIn) // etc....................... ?>
</html>
但请注意,一般情况下,像这样混合PHP和HTML内容变得难以维护。您应该考虑使用模板引擎将两者分开。
答案 1 :(得分:1)
一般来说,我正在尝试保持HTML原封不动,只需在任何需要的地方注入PHP代码。如果我可以避免它,我不喜欢回复HTML。我只是在回显部分留下HTML的小片段,比如在文本周围添加和。
我会避免使用你的第一个例子(整个页面“重复”)。尽量避免重复HTML,只需覆盖PHP逻辑中的更改。
答案 2 :(得分:0)
切断PHP是更好的做法,更常见。此外,无论您编写什么软件,它都会将其识别为html,如果它是一个字符串则不会。