huijiewei
V2EX  ›  PHP

有没有了解内核的 PHP 大神,问一个奇特语句的问题

  •  
  •   huijiewei · May 22, 2015 · 3929 views
    This topic created in 4036 days ago, the information mentioned may be changed or developed.

    return (array('code' => '1', 'message' => 'success ', data => $row));

    这种代码在强制关闭 PHP 所有错误提示的情况下,能通过吗?

    Supplement 1  ·  May 24, 2015
    谢谢各位了。

    不要问我这个代码为啥这么写。

    这份代码只是我现在维护的代码的一部分。系统里面比这个夸张的代码多了去了。

    每次我看到这种代码我都在想这种错误要不要改呢,万一这个就是人家要的效果呢?毕竟开发测试正式服务器的PHP错误提示都是全关的。

    那么第二个问题来,这种代码是重写好呢,还是改好呢?
    14 replies    2015-06-01 09:19:29 +08:00
    Septembers
        1
    Septembers  
       May 22, 2015
    不能
    语法错误
    oott123
        2
    oott123  
       May 22, 2015
    我比较倾向于,data 会被当成一个常量,然后因为你没有定义这个常量,所以会被当成字符串 "data" 解析并产生一个 WARNING 错误。
    不过这和内核没有什么关系。
    cevincheung
        3
    cevincheung  
       May 22, 2015
    这一点都不奇特
    feiyuanqiu
        4
    feiyuanqiu  
       May 22, 2015 via iPhone
    @oott123 实际上 data 会被转换为字符串
    feiyuanqiu
        5
    feiyuanqiu  
       May 22, 2015
    @oott123 抱歉,手机上没看清楚
    qaulau
        6
    qaulau  
       May 22, 2015
    不能,会抛出 Notice 提示使用未定义常量 data
    hiboshi
        7
    hiboshi  
       May 22, 2015
    肯定不能通过语法错误

    data 必须加'
    solaro
        8
    solaro  
       May 22, 2015
    直接这样是可以的:
    return (array('code' => '1', 'message' => 'success ', 'data' => $row));
    但是直接这样是不行的,因为data不是变量也不是常量,即便是也不能这么用。
    return (array('code' => '1', 'message' => 'success ', data => $row));
    solaro
        9
    solaro  
       May 22, 2015
    还有,这种写法万分不推荐,看似省事,其实万分不规范,看了令人抓狂
    $data = [
    'code' => '1',
    'message' => 'success ',
    'data => $row
    ];

    return ($data);

    酱紫不是好看多了?用phpstorm吧骚年,LINUX 、WIN 、OSX都有
    Actrace
        10
    Actrace  
       May 24, 2015
    我是来推销netbeans的,用netbeans会直接提示你未定义的常量~
    mingyun
        11
    mingyun  
       May 24, 2015
    return 为什么要加括号呢
    Jaylee
        12
    Jaylee  
       May 24, 2015
    @mingyun 同问 return后面为什么要括号
    thankyourtender
        13
    thankyourtender  
       May 24, 2015
    类型推导和类型定义是不一样的,这要是能有默认的数据类型,那基础的数据类型里面怎么分呢?
    走叉了
    coin
        14
    coin  
       Jun 1, 2015
    唉,过不去的吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5757 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 03:31 · PVG 11:31 · LAX 20:31 · JFK 23:31
    ♥ Do have faith in what you're doing.