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

2015-05-22 18:42:55 +08:00
 huijiewei

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

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

3422 次点击
所在节点    PHP
14 条回复
Septembers
2015-05-22 18:44:45 +08:00
不能
语法错误
oott123
2015-05-22 18:55:40 +08:00
我比较倾向于,data 会被当成一个常量,然后因为你没有定义这个常量,所以会被当成字符串 "data" 解析并产生一个 WARNING 错误。
不过这和内核没有什么关系。
cevincheung
2015-05-22 18:56:52 +08:00
这一点都不奇特
feiyuanqiu
2015-05-22 18:58:51 +08:00
@oott123 实际上 data 会被转换为字符串
feiyuanqiu
2015-05-22 18:59:51 +08:00
@oott123 抱歉,手机上没看清楚
qaulau
2015-05-22 19:22:04 +08:00
不能,会抛出 Notice 提示使用未定义常量 data
hiboshi
2015-05-22 20:13:37 +08:00
肯定不能通过语法错误

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

return ($data);

酱紫不是好看多了?用phpstorm吧骚年,LINUX 、WIN 、OSX都有
Actrace
2015-05-24 07:32:04 +08:00
我是来推销netbeans的,用netbeans会直接提示你未定义的常量~
mingyun
2015-05-24 09:11:03 +08:00
return 为什么要加括号呢
Jaylee
2015-05-24 14:08:40 +08:00
@mingyun 同问 return后面为什么要括号
thankyourtender
2015-05-24 18:37:19 +08:00
类型推导和类型定义是不一样的,这要是能有默认的数据类型,那基础的数据类型里面怎么分呢?
走叉了
coin
2015-06-01 09:19:29 +08:00
唉,过不去的吧。

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

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

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

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

© 2021 V2EX