有点疑惑,经常在 php 文件里看到这样插入 html 代码块,请问这样是正确用法吗,有没有潜在的规范问题?
1
VKMEPR OP 或者有没有其他更好的 html 代码插入方法?
|
2
lichao Jul 31, 2018
<?php include 'my_js.php'; ?>
|
4
580a388da131 Jul 31, 2018 via iPhone 定界符 <<<
|
5
helionzzz Jul 31, 2018
混写倒是没什么 只是维护修改的时候可能会比较头疼
|
6
580a388da131 Jul 31, 2018 via iPhone
正文的方法是最常见的,没啥问题。
大量的话现在一般用模版引擎。 |
7
mhycy Jul 31, 2018
PHP 支持这么做,只是 HTML 代码不是应该和 PHP 代码分离开来么?
至少放入到模板引擎才对 |
8
VKMEPR OP @580a388da131 知道<<<和 echo 可以插入。疑惑截图那种倒序闭合标签用法是否有副作用什么的
|
9
airdge Jul 31, 2018
echo <<<EOT
xxxxxxxx EOT; |
10
VKMEPR OP |
11
airdge Jul 31, 2018
echo <<<ABC
xxxxxxxx ABC; |
13
ben1024 Jul 31, 2018
可以,但不建议
用个模板引引擎吧[blade,smarty,twig] |
15
b821025551b Jul 31, 2018
PHP 刚出来的时候就是这么用的,只是后来大伙越来越觉得难用,才拆分出来。只是目前来说,这种写法比较上古。
|
16
casztg Jul 31, 2018
想当初大学里面作业就这样写·····
|
17
898601566 Jul 31, 2018
@580a388da131 EOF 这个思路我是认同的
|
18
1010011010 Jul 31, 2018
土味引用
|
19
nash Jul 31, 2018
不推荐 感觉还停留在五年前 首选各种模板引擎 退一万步 echo <<<EOT
|
21
lookas2001 Jul 31, 2018 via Android
本来 php 就是这个样子的啊。只不过现在 php 越来越现代化这种用法慢慢变少了。
|
22
zjsxwc Jul 31, 2018 via iPhone
本来就不符合现在的规范,看看 psr 规范去
|
23
SimbaPeng Jul 31, 2018 via Android
没人发现这个标记写反了么?
|
25
Mac Jul 31, 2018 via Android
有时候只是要输出一个简单的 html,那这种方法也没什么不可以的,没必要上升到的非用模板不可的地步
|
26
SimbaPeng Jul 31, 2018 via Android
php 那个标记本来就是用来在 html 里插入 php 代码的
|
27
SimbaPeng Jul 31, 2018 via Android
另外 php 本来就是一门没有规范的语言,那什么 psr 规范也不是官方的,官方的规范就是没有规范,随便你怎么写,233333
|
28
dawniii Jul 31, 2018
php 本身就是模板引擎,用先进的模板引擎,感觉就是在模板引擎上又造一套模板语言。感觉把原生的 php 写工整点也还行吧,不过现在都是前后端分离比较多。
|
29
xhinliang Jul 31, 2018
感觉回到了十年前。。。。
|
30
akira Jul 31, 2018
规范不规范不知道,我就想知道这样的代码怎么维护
|
31
jswh Jul 31, 2018
那些怎么维护的,你们都没用过 wordpress 嘛
|
32
edsgerlin Aug 1, 2018
开发过 WordPress 插件的表示这种写法很常见啊。
|
33
caola Aug 1, 2018
echo <<<'EOT' //如果以下内容中没有变量,请使用单引号才符合 psr 规范
xxxxxxxx EOT; 也可以写成变量: $add_my_js = <<<'EOT' xxxxxxxx EOT; echo $add_my_js; |
36
caola Aug 1, 2018
@yangqi 加引单号不会解析内部的变量,不加或者加双引号是会解析的,在性能优化方面这点是要遵守的
证明你平时对单双引号的用法不注重, 然而在我们这里,对此严格要求,否则不给予提交到版本库里的代码通过 但凡你去看一些比较出名的,如 laravel,wordpress 等都会遵守 |
37
wulongqiu Aug 1, 2018
这是 PHP 函数的基本结构和用法。
PHP 圣经里是这样写的“在一个函数中,花括号包括了完成所要求任务的代码。在花括号中,可以包含任何在 PHP 脚本的其他地方都合法的代码,其中包括函数调用、新变量或函数声明、require() 或者 include 语句、类声明以及 HTML 脚本”。 给出的示例是: ``` <?php function my_function() { ?> My Function was called <?php } ?> ``` |
38
hanxiV2EX Aug 1, 2018 via Android
要么模板,要么前后端分开
|
39
wulongqiu Aug 1, 2018
现在一般使用模板引擎来处理界面渲染,要么前后端分离开发模式。
|
40
supereric Aug 1, 2018 via Android 本身就是模板引擎,所谓的第三方模板引擎除了接口不会 php 也可以做模板外还有啥?
<?=变量> 跟{变量} 没差别。 YII 了解一下 |
41
jrient Aug 1, 2018
看着不舒服
|
42
imdong Aug 1, 2018
PHP 原生支持语法,而且也是 PHP 的一个特色。
但是,由于太难用,也不好维护,这么写的人越来越少了。 |
43
sujin190 Aug 1, 2018
其实我觉得问题在于,在现在比较完善的框架比如 laravel 中,只有在渲染模板阶段才生成 html,之后才输出到网络,你这样写,很有可能 html 并不会出现在你想要的位置,甚至会破坏 html 的结构
如果是模板渲染是调用的函数,那么 return 返回字符串就可以了,干嘛要协成这样呢 |
44
KgM4gLtF0shViDH3 Aug 1, 2018
@imdong #39 特别小的项目我还是喜欢一把梭。写起来比模板还自由一点。
|
45
victoryss Aug 1, 2018
根据实际情况来吧。单页、个人项目想怎么玩怎么玩,团队项目考虑可维护性。
|
46
zlhsvc Aug 1, 2018
写法没有任何问题,只是不利于维护
|
47
killerv Aug 1, 2018
PHP 本来就是这么用的,现在的模板引擎只不过在那个基础上做了一些看起来比较“美观”的做法,其实底层实现还是这样。当然如果项目比较大,还是用模板引擎比较好管理。如果小项目这样写没什么问题。
|
48
Clarencep Aug 1, 2018
首先,从语法上是没有问题。但是,这样相当于直接 echo 了一小段 html 代码,即这个函数是有副作用的。
-- 有副作用的函数一定要谨慎使用。 我个人觉得最好使用 nowdoc/heredoc 的方式,然后通过 return 返回这段 HTML. 更灵活一些。当然 return 的话应该顺便改下函数名。 |
50
bdnet Aug 1, 2018
不好维护 +1
MVC 了解下 |