关于/n及?:

2013-08-23 15:58:23 +08:00
 kennedy32
/n在html无法输出的话,为什么不直接br呢,费事还要回头nl2br

一句话if很简短,为什么看很多人的代码都没用,很少见的感觉。
3295 次点击
所在节点    PHP
20 条回复
siw
2013-08-23 16:05:03 +08:00
在console里就用\n
在网页里就用<br />

你的输出是网页还是console, 就用哪个。。。
rwx
2013-08-23 16:05:43 +08:00
\n吧?在我看来输出\n的唯一用处是生成的html可读性会好一点,因为会有换行,但在生产中真没见谁用过,基本都是模板了,而php又是最好的模板语言。。
三元运算符很常见啊,我以前就偏爱用这个,以至于现在用go的时候对于一行能搞定的东西写成四行极其不爽。。
siw
2013-08-23 16:20:53 +08:00
如果写四行代码写多了, 就真的只是那种四行代码, 你可能会感谢支持? 功能
Keyes
2013-08-23 16:49:48 +08:00
经过爬虫程序的蹂躏,私以为正确的\n替换法应该是酱紫:
1、查找\r\n替换为<br />
2、查找\r替换为<br />
3、查找\n替换为<br />
rayhome1987
2013-08-23 17:26:24 +08:00
请使用PHP_EOL
msg7086
2013-08-23 20:17:35 +08:00
if只能执行语句,三元运算符是表达式。

比如极端点的例子,这样一句话

$data[$idx1][$i]->payload[2] = $core->ProcessData(isset($_POST['type']) ? 'a' : 'b') . PHP_EOL;

你改写成if就会很不方便。要么额外声明变量,要么就得repeat code
thbourlove
2013-08-23 20:56:58 +08:00
其实 ?: 比 if..else.. 慢。。。虽然能用的时候还是会去用 ?:
nybux
2013-08-23 22:29:34 +08:00
@thbourlove 误导群众呀,?:会编译成cmov,可以避免分支惩罚
thbourlove
2013-08-24 08:55:42 +08:00
@nybux 如果是我使用 ?: 的姿势不对,我道歉。
benchmark在此:https://gist.github.com/thbourlove/6325340
thbourlove
2013-08-24 09:13:07 +08:00
补一个可以直接运行的,结果略有误差,但跟上面差不了太多。
https://gist.github.com/thbourlove/6325403
vibbow
2013-08-24 09:17:58 +08:00
@thbourlove 结果和你的刚好相反

C:\Program Files (x86)\PHP\php.exe C:\Users\Administrator\Documents\NetBeansProjects\test\index.php
0.013000965118408
0.018001079559326
完成。

PHP 5.4.18 @ Windows 7
thbourlove
2013-08-24 09:20:57 +08:00
@vibbow 直接运行的上面这段代码?
vibbow
2013-08-24 09:21:18 +08:00
vibbow
2013-08-24 09:25:44 +08:00
卧槽,PHP 5.4.19肯定rollback什么代码了,执行那段代码耗时比php 5.4.18长了。
但是也只是把两种方法的执行时间都拖到了0.017s左右。
并没有体现出哪种方法更快。
thbourlove
2013-08-24 09:28:54 +08:00
@vibbow 我是 PHP5.5 @ Mac。刚才又在虚拟机( PHP 5.4 @ ubuntu )下面测了一下,结果是反过来了
0.023139953613281
0.027631998062134
thbourlove
2013-08-24 09:31:29 +08:00
@vibbow 小版本号之间也会有这么大差别??我再试试。。
vibbow
2013-08-24 09:34:40 +08:00
@thbourlove 5.4.18 是个悲剧的版本
只有windows版,没有源代码版
vibbow
2013-08-24 09:37:21 +08:00
不过在这玩意兼容PHP 5.5之前,我升级到PHP 5.5的概率很渺茫了
http://www.microsoft.com/en-us/download/details.aspx?id=20098
thbourlove
2013-08-24 09:43:33 +08:00
@vibbow 5.5 也只是自己电脑上随便玩玩的时候才用。生产环境和开发环境依然还是 php5.4,没有吃螃蟹的爱好。。
yinian1992
2013-08-24 09:47:37 +08:00
white-space 是干吗的?

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

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

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

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

© 2021 V2EX