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