Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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,在看到这个小数字之前,我对PHP的理解还不错。我不明白这个逻辑在做什么 strpos()必须返回非false 您正在使用Internet Explorer strpos()必须返回false 您没有使用Internet Explorer 什么时候需要在PHP模式中跳进和退出PHP模式,即使在PHP块的中间。 这个方法与仅仅使用PHP动态输出HTML有什么不同? 在我看来,这种风格与PHP不一致。建议这样做吗 就浏览器而言,这并没有什么不同。它更具语义,将显示代码排除在逻辑代码之外。一般来说,

在看到这个小数字之前,我对PHP的理解还不错。我不明白这个逻辑在做什么


strpos()必须返回非false
您正在使用Internet Explorer

strpos()必须返回false 您没有使用Internet Explorer

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

这个方法与仅仅使用PHP动态输出HTML有什么不同?
在我看来,这种风格与PHP不一致。建议这样做吗

就浏览器而言,这并没有什么不同。它更具语义,将显示代码排除在逻辑代码之外。一般来说,对于上述内容,您将拥有一个视图(MVC),并将尽可能多地从HTML中提取PHP,因此,如果团队中有不懂PHP的web设计师,他们将更容易修改HTML。

这只是一种不同的样式。只要您习惯了以这种方式工作,就不会有性能差异(执行方面),生产方面也不会有性能差异

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

话虽如此

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

此样式的问题:

它也有它的缺点,例如,当你开始包含很多不同类型的文件时,因为你使用的是Javascript之类的东西,这使得追踪问题变得更加困难,而且它更像是一种新手编程风格

  • 它导致在编程的其他方面走捷径
  • 在PHP中使用类时,它们看起来像Javascript中的类
  • 在Javascript和CSS方面,使用这种方法并遵循互联网上少有的新规则是很困难的
  • 如果有对其他文件或行号的内联引用,现在可以通过格式化来修改它们
  • 如果你有一个开发团队和一个图形设计师或网页设计师团队,他们都需要在同一个代码中(这会导致混乱)
  • 大多数设计师都知道CSS和Javascript、jquery,也许还有一点Ajax。大多数开发人员都知道HTML和编程语言。因此,当两者混合时,可能会导致问题
  • 在下面的屏幕截图中,我们使用的是
    PHP
    Javascript
    HTML
    ,所有这些都是相互关联的。如果
    Javascript的
    DOM
    中有错误,您需要在
    PHP的
    include()
    中查找代码行(假设在前端编写并提供代码后,您正在使用PHP Include作为标题。这不会导致PHP错误,因此由于缺少代码文档,可能需要搜索x个包含。当您在所有代码上搜索
    for
    if
    时,它将匹配多个相同的文件

    如果
    Javascript
    HTML
    中的格式出现错误,破坏了
    PHP
    ,你就必须在
    包含
    中寻找这些错误。这非常混乱,但从技术上讲,这一切都是功能性的。如果人们只按照自己知道的方式编程,可能会变得非常混乱。而且调试起来非常困难

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


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

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

    <?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; ?>
    
    
    strpos()必须返回非false
    您正在使用Internet Explorer

    strpos()必须返回false 您没有使用Internet Explorer

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

    • 它很快,解析器直接跳过非PHP块,而不计算它们
    • 很简单
    • 没有乱七八糟的引语或不可读的反斜杠狂欢
    • 即使在不太高级的编辑器中,语法高亮显示也很好
    我不明白这个逻辑在做什么

    一个重要的提示是,这里是PHP解释器,而不是浏览器

    我觉得这种风格不太一致

    你需要考虑一下。添加一些有风度的JavaScript和样式到这个愚蠢的HTML,并重新考虑结果代码。

    对于PHP,建议这样做吗

    当然可以。

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

    这只是PHP的另一种风格——如果您正在处理一大块HTML,并且想要打印出一两个变量,在数组上循环或使用一些简单的if语句,那么这种方法可能非常适合您的应用程序目的。

    +1用于提及设计团队。在我看来,友好协作的代码是最好的:)这个答案有点偏离了一个完全不同的方向。你经常需要模板中的一些逻辑。这个问题只是关于跳入和跳出PHP块的风格,而不是这些块做什么。不同的方向是什么?我们都同意这是一个风格决定,而不是行为决定。我试图回答w为什么我认为人们选择这种风格,根据我的经验,这是因为他们通常担心前端开发人员会把事情搞砸。你在评论中提到了转义引号之类的东西。这是一种风险较小的方式。另外,还记得PHP最初是作为HTML预处理器的。跳过
    <?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; ?>