![]() | 1 SoloCompany 2014-10-06 01:55:19 +08:00 不明白lz吐槽的是神马 php > var_export(explode(",","a,b,c")); array ( 0 => 'a', 1 => 'b', 2 => 'c', ) php > var_export(explode(",”,"a,b,c")[0]); 'a' php > echo phpversion(); 5.5.17 |
![]() | 2 keefo 2014-10-06 04:58:09 +08:00 已测,只返回一个 "ok" |
![]() | 3 breeswish 2014-10-06 09:20:33 +08:00 PHP 5.4 以前是不支持直接对函数返回的数组访问下标的,这是语法上的限制 http://php.net/manual/zh/language.types.array.php 「自 PHP 5.4 起可以用数组间接引用函数或方法调用的结果。之前只能通过一个临时变量。」 |
![]() | 4 breeswish 2014-10-06 09:23:00 +08:00 关于 strpos,PHP 手册上也明确写了应当使用全等符号来比较。 http://php.net/manual/zh/function.strpos.php 「此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。」 不看手册凭直觉掉进了坑怪谁呢 = = |
![]() | 5 whywhywhy OP @SoloCompany 我的5.2,看来是我out了 ![]() @keefo 想判断是不是Date:开头的字符串 因为是在字符串开头,所以找到的话会返回0,找不到的话会返回false,在其他位置会返回对应的数字 因为对比的时候是数字0,所以找不到时返回的false会转换成0,于是……这个判断任何时候都会返回“true”。想了好久好久,才想到这个原因。要用3个等号判断…… |
![]() | 6 whywhywhy OP @breeswish 第一个:我是asp,js菜鸟转过来的……习惯了用[0]直接放函数后面,嘿嘿,没想到在php5.4才支持。 第二个:当时出来结果不对……就郁闷了,反复测试几次,才想到可能是判断的时候false转换成0了…… 哎,有的东西不知道用什么关键词搜,头疼。 至于手册……大概看了看,没注意到后面 |
![]() | 7 gamexg 2014-10-06 10:02:14 +08:00 跨语言很容易掉进这种小坑。 |
![]() | 10 Mac 2014-10-07 22:15:09 +08:00 以前也很固执的停在5.2上好久,后来发现越来越多的问题在5.4下不是问题了,连性能也大幅度提升。 |