PHP 里这样插入 HTML 合乎规范吗?

2018-07-31 15:49:23 +08:00
 VKMEPR

有点疑惑,经常在 php 文件里看到这样插入 html 代码块,请问这样是正确用法吗,有没有潜在的规范问题?

5355 次点击
所在节点    PHP
52 条回复
jrient
2018-08-01 09:04:52 +08:00
看着不舒服
imdong
2018-08-01 09:15:32 +08:00
PHP 原生支持语法,而且也是 PHP 的一个特色。
但是,由于太难用,也不好维护,这么写的人越来越少了。
sujin190
2018-08-01 09:34:32 +08:00
其实我觉得问题在于,在现在比较完善的框架比如 laravel 中,只有在渲染模板阶段才生成 html,之后才输出到网络,你这样写,很有可能 html 并不会出现在你想要的位置,甚至会破坏 html 的结构
如果是模板渲染是调用的函数,那么 return 返回字符串就可以了,干嘛要协成这样呢
KgM4gLtF0shViDH3
2018-08-01 10:11:34 +08:00
@imdong #39 特别小的项目我还是喜欢一把梭。写起来比模板还自由一点。
victoryss
2018-08-01 10:33:21 +08:00
根据实际情况来吧。单页、个人项目想怎么玩怎么玩,团队项目考虑可维护性。
zlhsvc
2018-08-01 11:10:40 +08:00
写法没有任何问题,只是不利于维护
killerv
2018-08-01 11:20:18 +08:00
PHP 本来就是这么用的,现在的模板引擎只不过在那个基础上做了一些看起来比较“美观”的做法,其实底层实现还是这样。当然如果项目比较大,还是用模板引擎比较好管理。如果小项目这样写没什么问题。
Clarencep
2018-08-01 11:22:27 +08:00
首先,从语法上是没有问题。但是,这样相当于直接 echo 了一小段 html 代码,即这个函数是有副作用的。

-- 有副作用的函数一定要谨慎使用。

我个人觉得最好使用 nowdoc/heredoc 的方式,然后通过 return 返回这段 HTML. 更灵活一些。当然 return 的话应该顺便改下函数名。
wekw
2018-08-01 15:32:06 +08:00
@zjsxwc 兄弟,你暴露了,你是最无知的那个。
bdnet
2018-08-01 15:40:36 +08:00
不好维护 +1

MVC 了解下
yangqi
2018-08-01 21:31:13 +08:00
@caola 你是来搞笑的么,这个是 heredoc 和 nowdoc 的语法区别,和 php 的单引号双引号有个毛的关系。
caola
2018-08-02 03:42:05 +08:00
@yangqi 难道我不知道 heredoc 和 nowdoc 的语法?你不清楚我的意思了吗???
字符串(块)内部没有变量时,就不应该使用双引号(heredoc),这是性能问题,应当注重!注重!注重!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/475683

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX