PHP这种写法是有什么好处?

时间:2022-12-01 20:18:57
我发现很多MVC模式的VIEW层(比如有的搜索页面等必须写php代码时)写php代码,都是类似以下写法,感觉很是不理解, 不知道为什么要这样写(以下代码懂,意思不理解)。

比如要循环打印一个水果数组(不能理解为什么要这样写,代码懂,这样做的目的不明白):

<?php foreach($arr as $v){  ?>

<!--然后是一段html代码-->

<?php echo $v; ?> :<span>新鲜水果</span><br/>

<?php  } ?>


好杂乱啊,,,,怎么到处都是php代码,而且有N个php标签<?php ?>,不能像下面一样一次写完吗?
我想的是这样就很好啊(我想像中应该这样,反正都要有php,还不如爽快点):
<?php

foreach($arr as $v){

echo $v."新鲜水果<br/>";

}


但是很多官方程序都是这样搞的如dede搜索页,zend framework一些页面,还有老师等都是最上面的写法,太不理解了,如果说是为了mvc分离,但是上面感觉没怎么分离啊,反而感觉很 杂乱。。。。求解。。。。




参考以下zend framework的一段if语句的写法就是这种杂乱式的大杂烩:

  <?php if (isset($this->exception)): ?>
  
  <h3>Exception information:</h3>
  <p>
      <b>Message:</b> <?php echo $this->exception->getMessage() ?>
  </p>

  <h3>Stack trace:</h3>
  <pre><?php echo $this->exception->getTraceAsString() ?>
  </pre>

  <h3>Request Parameters:</h3>
  <pre><?php echo $this->escape(var_export($this->request->getParams(), true)) ?>
  </pre>

  <?php endif ?>

19 个解决方案

#1


这就是php的特点,将程序嵌入到HTML文档中去执行,这样极大的提高了执行效率。

#2


引用 1 楼 jordan102 的回复:
这就是php的特点,将程序嵌入到HTML文档中去执行,这样极大的提高了执行效率。


直接像我一样写一个整体php有什么问题吗?

而且上面的写法为了封尾,还出现了
<?php  } ?>
<?php  endif ?>
这样感觉没什么意思的东西,,然后,,,,这种写法的php好像语法有点变异的感觉啊,和正常的php不太一样,不是很理解。。。。

#3


这是鼻祖写法,最早的php就是这样的
好像思想取自 server side include

#4


有什么要理解的,只需记住那样写执行效率高就行了。你自己也知道框架/cms 都采用这种写法,应该就能明白了。

#5


代码混写最大的好处是“方便”,缺点也不言而喻“混乱”
方便与维护性永远是向左右向右走,看你选择哪边而已

#6


你的第一种写法是:在 HTML 中嵌入 PHP
你的第二种写法是:在 PHP 中嵌入 HTML
两者都一样,就看你把谁作为主体了

#7


在HTML中嵌入PHP代码相对于PHP中嵌入HTML代码的在阅读和编写方面的优势一个是可以利用IDE对HTML代码的高亮和代码提示,另一个是不需要对特殊字符进行转义。

#8


维护效率比较低,还是程序与界面分离。

#9


引用 7 楼 jckings2007 的回复:
在HTML中嵌入PHP代码相对于PHP中嵌入HTML代码的在阅读和编写方面的优势一个是可以利用IDE对HTML代码的高亮和代码提示,另一个是不需要对特殊字符进行转义。


有点认同

#10


该回复于2013-06-25 09:53:24被管理员删除

#11


mvc  v里面也要判定的 只是每个角色不一样   PHP这种写法是有什么好处?

#12


其实你的例子有局限性,如果是foreach包含的是100-200行的html标记字符串的话,你如果用php嵌入html的话,肯定是大段的字符串,很难保证大段的字符串不出现html标签错误,而简单使用html包含php的话,则很容易检测html中的错误。

#13


PHP里echo出html的话你会因为编辑界面时无法对html实施高亮方案(全部用PHP字符串着色方案)而不好维护代码.

#14


其实也没什么乱的,写习惯就好了,就像HTML一样有起始标签就有结束标签,PHP也一样,比如这样写<?php if(){ ?><?php }?>看不习惯就当成HTML语言写好了,个人还是习惯用<?php if():?>
<?php endif;?>感觉看的舒服

#15


你们居然在讨论这么高深的问题。
PHP这种写法是有什么好处?

#16


菜鸟表示围观一下 就可以了

#17


因为那些家伙可能需要用dw之类工具看html代码

#18


混编...........

#19


可能是怕别人改代码吧

#1


这就是php的特点,将程序嵌入到HTML文档中去执行,这样极大的提高了执行效率。

#2


引用 1 楼 jordan102 的回复:
这就是php的特点,将程序嵌入到HTML文档中去执行,这样极大的提高了执行效率。


直接像我一样写一个整体php有什么问题吗?

而且上面的写法为了封尾,还出现了
<?php  } ?>
<?php  endif ?>
这样感觉没什么意思的东西,,然后,,,,这种写法的php好像语法有点变异的感觉啊,和正常的php不太一样,不是很理解。。。。

#3


这是鼻祖写法,最早的php就是这样的
好像思想取自 server side include

#4


有什么要理解的,只需记住那样写执行效率高就行了。你自己也知道框架/cms 都采用这种写法,应该就能明白了。

#5


代码混写最大的好处是“方便”,缺点也不言而喻“混乱”
方便与维护性永远是向左右向右走,看你选择哪边而已

#6


你的第一种写法是:在 HTML 中嵌入 PHP
你的第二种写法是:在 PHP 中嵌入 HTML
两者都一样,就看你把谁作为主体了

#7


在HTML中嵌入PHP代码相对于PHP中嵌入HTML代码的在阅读和编写方面的优势一个是可以利用IDE对HTML代码的高亮和代码提示,另一个是不需要对特殊字符进行转义。

#8


维护效率比较低,还是程序与界面分离。

#9


引用 7 楼 jckings2007 的回复:
在HTML中嵌入PHP代码相对于PHP中嵌入HTML代码的在阅读和编写方面的优势一个是可以利用IDE对HTML代码的高亮和代码提示,另一个是不需要对特殊字符进行转义。


有点认同

#10


该回复于2013-06-25 09:53:24被管理员删除

#11


mvc  v里面也要判定的 只是每个角色不一样   PHP这种写法是有什么好处?

#12


其实你的例子有局限性,如果是foreach包含的是100-200行的html标记字符串的话,你如果用php嵌入html的话,肯定是大段的字符串,很难保证大段的字符串不出现html标签错误,而简单使用html包含php的话,则很容易检测html中的错误。

#13


PHP里echo出html的话你会因为编辑界面时无法对html实施高亮方案(全部用PHP字符串着色方案)而不好维护代码.

#14


其实也没什么乱的,写习惯就好了,就像HTML一样有起始标签就有结束标签,PHP也一样,比如这样写<?php if(){ ?><?php }?>看不习惯就当成HTML语言写好了,个人还是习惯用<?php if():?>
<?php endif;?>感觉看的舒服

#15


你们居然在讨论这么高深的问题。
PHP这种写法是有什么好处?

#16


菜鸟表示围观一下 就可以了

#17


因为那些家伙可能需要用dw之类工具看html代码

#18


混编...........

#19


可能是怕别人改代码吧

#20