PHP-在HTML文件中多次启动/结束PHP


PHP - start / end PHP multiple times in HTML file

我有一个HTML文件,我使用的PHP如下:

...
<?=$someVariable;?>
<html code>
<?php do something ?>
<?php do something ?>
<div>
<?php do something ?>
</div>
<?php do something ?>
...

这是一个好的方法吗,还是应该将整个HTML放入PHP echo?我的意思是,我多次在网页内启动/停止脚本,只是因为一个输出一个变量,或者是HTML代码块。

我这样做是为了在开发过程中提高HTML/PHP代码的可读性。

你关于"哪种方式更好"的问题可以分解为两个问题:

  1. 哪种方式更有效?

  2. 哪种方式更可读?

问题1的答案是,差异可以忽略不计。PHP代码在服务器上的执行速度非常快。通常,在PHP上花费很长时间的过程是复杂的函数,例如,需要对大量数据进行迭代,然而,单个标记的实际读取需要很短的时间来处理。

问题2的答案完全取决于情况。在您的情况下,您经常添加<?php?>标记,而您本可以同时完成这两个标记,因此我个人的意见是将其全部放在一个echo中,但在许多情况下,放置单独的php元素更可读,例如以下形式:

<form action="<?php htmlspecialchars($_SERVER['PHP SELF']);?>" method="POST">
  <?php echo $dynamic_input1'?><br>
  <input type="text" name="text1">
  <?php echo $dynamic_input2'?><br>
  <input type="text" name="text2">
</form>

如果有帮助,请告诉我。

您应该开始使用模板(读:viewmodels)。为了保持HTML的可读性,您可以将逻辑移到PHP文件的顶部,只将变量打印到HTML代码中。

我并不喜欢多个html/php块。我通常使用的是heredoc,这里有一个例子:

<?php
$myTitle = "Heredoc is Cool";
$myArray = array(array('someIndex' => '1st Paragraph'), array('anotherIndex' => '2nd Paragraph'));
echo <<< LOL
<!DOCTYPE html>
<html>
<head>
<title>{$myTitle}</title>
</head>
<body>
<h1>{$myArray['0']['someIndex']}</h1>
<p>{$myArray['1']['anotherIndex']}</p>
</body>
</html>
LOL;
?>

使用heredoc可以帮助我在不需要串联引号以及html之间的几个php块的情况下编写代码,这有时会令人困惑。Heredoc还帮助我的代码变得更加可读。

这会稍微降低性能。太少了。如果你更关心代码的可读性,你可以在不同的文件中管理代码并对代码进行分类(这是我个人的技术)。例如,HTML"Like"按钮的代码将是Like.txt文件。每当我想使用点赞按钮时,我只添加

file_get_contents("like.txt");

这种技术将增加代码的灵活性,但也会降低一点性能(当您打开文件时)。为了遵循这项技术,您必须维护类架构图、类图、用例图和其他这些。

这是编程(质量保证)的基本障碍。增加一件事可能会减少另一件事,即增加互操作性和灵活性将降低性能(取决于降低多少)。所以你必须衡量在一个特定的软件项目中你最需要什么。