0

直到我看到这个小数字,我才开始理解 PHP。我对这个逻辑在做什么感到困惑。

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() must have returned non-false</h3>
<p>You are using Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() must have returned false</h3>
<p>You are not using Internet Explorer</p>
<?php
}
?>

即使在 PHP 块的中间,什么时候需要跳入和跳出 PHP 模式。

这种方法与仅使用 PHP 动态输出 HTML 有何不同?这种风格对我来说似乎与 PHP 不一致,这是推荐的吗?

4

5 回答 5

7

就浏览器而言,它并没有真正的不同。它更加语义化,将显示代码排除在逻辑代码之外。一般来说,对于上述内容,您将拥有一个视图 (MV C ),并且会从 HTML 中尽可能多地抽象出 PHP,因此,如果您的团队中有不了解 PHP 的网页设计师,它会他们更容易修改 HTML。

于 2013-06-18T16:40:25.173 回答
4

更易读的版本(尽管有单独的模板系统)是:

<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) : ?>
    <h3>strpos() must have returned non-false</h3>
    <p>You are using Internet Explorer</p>
<?php else : ?>
    <h3>strpos() must have returned false</h3>
    <p>You are not using Internet Explorer</p>
<?php endif; ?>

但是,是的,这是常用的。这很好,因为:

  • 它很快,解析器只是跳过非 PHP 块而不评估它们
  • 这很简单
  • 没有搞砸的引号或不可读的反斜杠狂欢
  • 即使在不太高级的编辑器中也能很好地突出显示语法
于 2013-06-18T16:40:43.483 回答
2

这只是一种不同的风格。只要您习惯以这种方式工作,实际上就没有性能差异(执行方面),生产方面也没有性能差异。

有些人这样编码是因为在编辑器中,当您将 HTML 封装到 PHP 中时,编辑器不会像单独处理 HTML 时那样对 HTML 格式进行着色。

仅 PHP 格式

话虽如此...

当您必须使用这种格式进行重大设计更改时,您必须重写所有代码。

html-混合

这种风格的问题:

它有其缺点,例如,当您开始包含大量各种类型的文件时,因为您使用的是 Javascript 之类的东西,这使得追查问题变得更加困难,而且它更像是一种新手编程风格。

  1. 它导致在编程的其他方面偷工减料
  2. 当您在 PHP 中使用类时,它们往往看起来像 Javascript 中的类
  3. 在 Javascript 和 CSS 方面,很难使用这种方法并遵循互联网上少数包含的新规则。
  4. 如果有对其他文件或行号的内联引用,现在它们通过格式化修改
  5. 如果您有一个开发人员团队和一个图形设计师或网页设计师团队,他们都需要使用相同的代码(这会导致混乱)。
  6. 大多数设计师都知道 CSS 和 Javascript、jquery,也许还有一点 Ajax。大多数开发人员都知道 HTML 和他们正在编程的语言。因此,当两者混合在一起时,可能会导致问题。

在下面的屏幕截图中,我们使用PHPJavascriptHTML彼此串联。DOM如果for中有错误,Javascript您需要在其中寻找代码行include()PHP假设您在代码编写在前端并提供服务后使用 PHP 包含头文件。它不会导致PHP 错误,因此由于缺乏对代码的记录,它可能在x个包含中进行搜索。当您搜索所有代码时,forif会匹配多个相同的文件。

如果格式有错误JavascriptHTML破坏了,PHP您将不得不寻找include. 它非常混乱,但在技术上都是可行的。如果人们只按照他们知道的方式编程,就会变得非常混乱。而且很难调试。

这很难调试。

如果您遇到类似的问题,请将它们提交给团队的经理(如果您不是经理)并解释时间损失和预算增加的编程时间。当这一切都转化为金钱时,他们会很快得到这个想法。

注意:所有屏幕截图均来自 Dreamweaver,采用默认代码着色

于 2013-06-18T16:40:31.093 回答
1

我对这个逻辑在做什么感到困惑。

它进入和退出 PHP 模式。一个重要的注意事项 - 它是 PHP 解释器,而不是浏览器。

这种风格对我来说似乎不一致

你需要三思而后行。在这个愚蠢的 HTML 中添加一些有趣的 javascript 和样式,然后再次考虑生成的代码。

推荐使用 PHP 吗?

确实。
这实际上是输出 XHTML 块保持其外观、结构、突出显示和缩进的唯一合理方法。

于 2013-06-18T16:46:46.707 回答
0

这只是 PHP 的另一种风格——如果您正在处理一大块 HTML 并想要打印出一个或两个变量、循环数组或使用一些简单的 IF 语句,那么这种方法可能是您的理想选择。

于 2013-06-18T17:08:43.020 回答