关于/n及?: - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kennedy32
V2EX    PHP

关于/n及?:

  •  
  •   kennedy32 2013-08-23 15:58:23 +08:00 via Android 3537 次点击
    这是一个创建于 4433 天前的主题,其中的信息可能已经有所发展或是发生改变。
    /n在html无法输出的话,为什么不直接br呢,费事还要回头nl2br

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

    你的输出是网页还是console, 就用哪个。。。
    rwx
        2
    rwx  
       2013-08-23 16:05:43 +08:00
    \n吧?在我看来输出\n的唯一用处是生成的html可读性会好一点,因为会有换行,但在生产中真没见谁用过,基本都是模板了,而php又是最好的模板语言。。
    三元运算符很常见啊,我以前就偏爱用这个,以至于现在用go的时候对于一行能搞定的东西写成四行极其不爽。。
    siw
        3
    siw  
       2013-08-23 16:20:53 +08:00
    如果写四行代码写多了, 就真的只是那种四行代码, 你可能会感谢支持? 功能
    Keyes
        4
    Keyes  
       2013-08-23 16:49:48 +08:00
    经过爬虫程序的蹂躏,私以为正确的\n替换法应该是酱紫:
    1、查找\r\n替换为<br />
    2、查找\r替换为<br />
    3、查找\n替换为<br />
    rayhome1987
        5
    rayhome1987  
       2013-08-23 17:26:24 +08:00
    请使用PHP_EOL
    msg7086
        6
    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
        7
    thbourlove  
       2013-08-23 20:56:58 +08:00
    其实 ?: 比 if..else.. 慢。。。虽然能用的时候还是会去用 ?:
    nybux
        8
    nybux  
       2013-08-23 22:29:34 +08:00
    @thbourlove 误导群众呀,?:会编译成cmov,可以避免分支惩罚
    thbourlove
        9
    thbourlove  
       2013-08-24 08:55:42 +08:00
    @nybux 如果是我使用 ?: 的姿势不对,我道歉。
    benchmark在此:https://gist.github.com/thbourlove/6325340
    thbourlove
        10
    thbourlove  
       2013-08-24 09:13:07 +08:00
    补一个可以直接运行的,结果略有误差,但跟上面差不了太多。
    https://gist.github.com/thbourlove/6325403
    vibbow
        11
    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
        12
    thbourlove  
       2013-08-24 09:20:57 +08:00
    @vibbow 直接运行的上面这段代码?
    vibbow
        13
    vibbow  
       2013-08-24 09:21:18 +08:00
    vibbow
        14
    vibbow  
       2013-08-24 09:25:44 +08:00
    卧槽,PHP 5.4.19肯定rollback什么代码了,执行那段代码耗时比php 5.4.18长了。
    但是也只是把两种方法的执行时间都拖到了0.017s左右。
    并没有体现出哪种方法更快。
    thbourlove
        15
    thbourlove  
       2013-08-24 09:28:54 +08:00
    @vibbow 我是 PHP5.5 @ Mac。刚才又在虚拟机( PHP 5.4 @ ubuntu )下面测了一下,结果是反过来了
    0.023139953613281
    0.027631998062134
    thbourlove
        16
    thbourlove  
       2013-08-24 09:31:29 +08:00
    @vibbow 小版本号之间也会有这么大差别??我再试试。。
    vibbow
        17
    vibbow  
       2013-08-24 09:34:40 +08:00
    @thbourlove 5.4.18 是个悲剧的版本
    只有windows版,没有源代码版
    vibbow
        18
    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
        19
    thbourlove  
       2013-08-24 09:43:33 +08:00
    @vibbow 5.5 也只是自己电脑上随便玩玩的时候才用。生产环境和开发环境依然还是 php5.4,没有吃螃蟹的爱好。。
    yinian1992
        20
    yinian1992  
       2013-08-24 09:47:37 +08:00 via Android
    white-space 是干吗的?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2739 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26m UTC 08:32 PVG 16:32 LAX 01:32 JFK 04:32
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86