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

2015 年 5 月 22 日
 huijiewei

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

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

4101 次点击
所在节点    PHP
14 条回复
Septembers
2015 年 5 月 22 日
不能
语法错误
oott123
2015 年 5 月 22 日
我比较倾向于,data 会被当成一个常量,然后因为你没有定义这个常量,所以会被当成字符串 "data" 解析并产生一个 WARNING 错误。
不过这和内核没有什么关系。
cevincheung
2015 年 5 月 22 日
这一点都不奇特
feiyuanqiu
2015 年 5 月 22 日
@oott123 实际上 data 会被转换为字符串
feiyuanqiu
2015 年 5 月 22 日
@oott123 抱歉,手机上没看清楚
qaulau
2015 年 5 月 22 日
不能,会抛出 Notice 提示使用未定义常量 data
hiboshi
2015 年 5 月 22 日
肯定不能通过语法错误

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

return ($data);

酱紫不是好看多了?用phpstorm吧骚年,LINUX 、WIN 、OSX都有
Actrace
2015 年 5 月 24 日
我是来推销netbeans的,用netbeans会直接提示你未定义的常量~
mingyun
2015 年 5 月 24 日
return 为什么要加括号呢
Jaylee
2015 年 5 月 24 日
@mingyun 同问 return后面为什么要括号
thankyourtender
2015 年 5 月 24 日
类型推导和类型定义是不一样的,这要是能有默认的数据类型,那基础的数据类型里面怎么分呢?
走叉了
coin
2015 年 6 月 1 日
唉,过不去的吧。

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

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

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

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

© 2021 V2EX