Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不同的代码编写方式。需要建议吗_Php - Fatal编程技术网

Php 不同的代码编写方式。需要建议吗

Php 不同的代码编写方式。需要建议吗,php,Php,我的朋友用phps echo写所有东西 我的意思是他开始了不,那样做也不好 不要使用echo输出HTML,而是将代码分为两部分——业务逻辑部分和表示逻辑部分,后者主要由HTML组成,PHP仅用于输出来自业务逻辑部分的数据 此类模板的一个小示例: <? if ($err): ?> <? foreach($err as $e): ?> <div class="err"><?=$e?></div> <? endforeach ?

我的朋友用phps echo写所有东西


我的意思是他开始了不,那样做也不好

不要使用echo输出HTML,而是将代码分为两部分——业务逻辑部分和表示逻辑部分,后者主要由HTML组成,PHP仅用于输出来自业务逻辑部分的数据

此类模板的一个小示例:

<? if ($err): ?>
  <? foreach($err as $e): ?>
<div class="err"><?=$e?></div>
  <? endforeach ?>
<? endif ?>
<form>
  <input type="text" name="name" value="<?=$form['name']?>">
  <textarea name="comments"><?=$form['comments']?></textarea>
  <input type="submit">
</form>

太可怕了

如果可以的话,你应该尽量不要混合使用PHP和HTML


在某些情况下,您将交错一些动态内容与静态内容(您可以使用模板引擎);但是,通过PHP语句输出整个HTML文档显然是疯狂和虐待狂的表现。

使用HTML代码而不是回音有一个优势,即编辑器(在您的例子中是Dreamweaver)可以进行语法高亮显示。这将帮助您更快地发现HTML中的错误

此外,您不必过多考虑转义HTML中的引号(无论如何,您仍然需要考虑正确转义PHP变量)

我可以想出几种方法来养成随声附和的坏习惯:

  • 混合PHP和HTML时缺少PHP标记导致的错误。对于一个新手来说,你需要花一些时间来理解使用一种语言(PHP)来用另一种语言(HTML)编写代码的概念。我记得,当我第一次学习PHP时,我认为回显所有内容比一直打开和关闭PHP标记更容易
  • 来自语言背景,每个输出都必须显式打印
  • 在网上读过一些疯狂的微优化文章,声称回音更快或更安全

    • 如果他是这样做的,那么请帮我们拍一下他的后脑勺好吗


      但说真的,有一个东西叫做,请看一看,理解它,实现它,并向您的朋友解释。

      您可能对模板感兴趣。它们不是html或php,而是两者的结合。
      其优点是,您可以更轻松地查看/编辑/更新/维护代码,因为实际的php部分与html标记有些分离。
      主要的缺点是它可能会慢一点,因为php读取模板,进行替换,然后吐出html


      一些最常用的php模板引擎。

      好的,我从一开始就用同样的方式编写。但是你能解释一下他的方法想做什么吗?他为什么把所有东西都放在“回声”里?问他不是更好吗?我不能替他说,我只能猜测。这可能是基于一些不好的教程的旧习惯。事实上,99%的在线PHP教程都是噩梦。也包括SO答案。好的,90%我理解,但我想了解的是echo方法提供了什么?您也可以在
      echo
      中包装视图(你说得对,我也说得对,但不是整页,只是花边新闻。