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

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

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

5342 次点击
所在节点    PHP
52 条回复
lookas2001
2018-07-31 17:54:45 +08:00
本来 php 就是这个样子的啊。只不过现在 php 越来越现代化这种用法慢慢变少了。
zjsxwc
2018-07-31 19:10:21 +08:00
本来就不符合现在的规范,看看 psr 规范去
SimbaPeng
2018-07-31 19:39:46 +08:00
没人发现这个标记写反了么?
SimbaPeng
2018-07-31 19:40:25 +08:00
@SimbaPeng 看错了,当我没说
Mac
2018-07-31 19:42:02 +08:00
有时候只是要输出一个简单的 html,那这种方法也没什么不可以的,没必要上升到的非用模板不可的地步
SimbaPeng
2018-07-31 19:42:59 +08:00
php 那个标记本来就是用来在 html 里插入 php 代码的
SimbaPeng
2018-07-31 19:48:42 +08:00
另外 php 本来就是一门没有规范的语言,那什么 psr 规范也不是官方的,官方的规范就是没有规范,随便你怎么写,233333
dawniii
2018-07-31 20:04:04 +08:00
php 本身就是模板引擎,用先进的模板引擎,感觉就是在模板引擎上又造一套模板语言。感觉把原生的 php 写工整点也还行吧,不过现在都是前后端分离比较多。
xhinliang
2018-07-31 22:59:51 +08:00
感觉回到了十年前。。。。
akira
2018-07-31 23:08:47 +08:00
规范不规范不知道,我就想知道这样的代码怎么维护
jswh
2018-07-31 23:28:55 +08:00
那些怎么维护的,你们都没用过 wordpress 嘛
edsgerlin
2018-08-01 01:51:34 +08:00
开发过 WordPress 插件的表示这种写法很常见啊。
caola
2018-08-01 02:10:58 +08:00
echo <<<'EOT' //如果以下内容中没有变量,请使用单引号才符合 psr 规范
xxxxxxxx
EOT;

也可以写成变量:
$add_my_js = <<<'EOT'
xxxxxxxx
EOT;

echo $add_my_js;
yangqi
2018-08-01 02:46:50 +08:00
@caola PSR 并没有规范这个,不加引号是 heredoc 语法,加引号是 nowdoc 的语法,php5.3 开始。两个都可以,没有本质区别。
msg7086
2018-08-01 05:10:21 +08:00
@nash 5 年前过分了。这差不多是 15 年前流行的写法。
10 年前就流行 Smarty 了,5 年前都已经过渡到框架了。
caola
2018-08-01 07:10:10 +08:00
@yangqi 加引单号不会解析内部的变量,不加或者加双引号是会解析的,在性能优化方面这点是要遵守的
证明你平时对单双引号的用法不注重,
然而在我们这里,对此严格要求,否则不给予提交到版本库里的代码通过

但凡你去看一些比较出名的,如 laravel,wordpress 等都会遵守
wulongqiu
2018-08-01 07:22:43 +08:00
这是 PHP 函数的基本结构和用法。
PHP 圣经里是这样写的“在一个函数中,花括号包括了完成所要求任务的代码。在花括号中,可以包含任何在 PHP 脚本的其他地方都合法的代码,其中包括函数调用、新变量或函数声明、require() 或者 include 语句、类声明以及 HTML 脚本”。
给出的示例是:
```
<?php
function my_function() {
?>
My Function was called
<?php
}
?>
```
hanxiV2EX
2018-08-01 07:24:26 +08:00
要么模板,要么前后端分开
wulongqiu
2018-08-01 07:26:16 +08:00
现在一般使用模板引擎来处理界面渲染,要么前后端分离开发模式。
supereric
2018-08-01 08:52:26 +08:00
本身就是模板引擎,所谓的第三方模板引擎除了接口不会 php 也可以做模板外还有啥?

<?=变量> 跟{变量} 没差别。

YII 了解一下

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

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

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

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

© 2021 V2EX