想问下, PHP 的项目中,有没有这样写过代码的?

2020-11-06 18:40:02 +08:00
 xxbutoo

$a = ['name'=>'zhangsan','age'=>18];

if (count($a) == 0) {
echo "array is empty";
} else foreach($a as $k => $v) {
echo $v;
}

4798 次点击
所在节点    PHP
43 条回复
RickyC
2020-11-07 01:43:13 +08:00
if ($a)
foreach ($a as $v)
echo $v;
else
echo "array is empty";
------
如果是我可能会这么写, 欢迎指正.
RickyC
2020-11-07 01:44:59 +08:00
@ben1024 能省必省是原则; 但必要的注释不能省; 能说 1 个字不说 2 个字
HackerJax
2020-11-07 08:35:56 +08:00
直接 foreach 就完事了,只要是数组就行
cszchen
2020-11-07 08:57:33 +08:00
第一次知道这种写法,不推荐,可以辞退了
shanghai1998
2020-11-07 09:31:29 +08:00
开掉,太骚了
RickyC
2020-11-07 09:37:14 +08:00
@cszchen 为什么不推荐, 如果这样写性能更好呢?
newtype0092
2020-11-07 10:22:14 +08:00
@RickyC 这种完全是陋习,与性能无关。除非是机器自动生成,人工写这种代码极大的提高了维护时的出错概率,纯属给自己和同事找麻烦。
sorshion
2020-11-07 10:22:18 +08:00
第二次听说这种语法,还是鸟哥,博客介绍的
cszchen
2020-11-07 10:58:59 +08:00
@RickyC 用的还是 if else + foreach 循环,怎么会性能更好
退一万步讲,就算性能更好,这么不规范也是得不偿失
用 PHP 来开发,是因为性能不是瓶颈
fengh0409
2020-11-07 13:45:40 +08:00
不需要判断,直接 foreach 完事
maigebaoer
2020-11-07 13:48:26 +08:00
鸟哥博客有见过
hexiaolu
2020-11-07 14:18:12 +08:00
是有这样的写法,只是不会这样写,不过 100 个 phper 100 种规范,写代码开心就好!!!
ditel
2020-11-07 14:58:05 +08:00
自动生成没问题,写的就拖出去吧
elintwenty
2020-11-07 15:09:15 +08:00
动态语言 + 奇技淫巧 + 望文生义 维护复杂度指数级增加,在工程里这么写的人已经都被打死了
lovecy
2020-11-07 15:20:13 +08:00
if (!empty($a)) {
....foreach($a as $k => $v) {
........echo $v;
....}
} else {
....echo "array is empty";
}
注:....代表缩进

这么写是最完美的,懂得都懂!
好吧,其实就是防止$a 为 undefined 或者 null,报 NOTICE 或 WARNING 错误
lovecy
2020-11-07 15:23:12 +08:00
@RickyC 没有性能提升可言,而且后期维护的时候,一旦没注意到这里没有花括号,直接后面加了代码,就出错了。
代码可维护性比省那几个字符重要多了。。
dvaknheo
2020-11-07 19:50:07 +08:00
我会这么写:
$a=is_array($a)?$a:[];
foreach($a as $k => $v) {
//
}
好处是少一层缩进,看起来舒服。
xxbutoo
2020-11-07 21:38:40 +08:00
@elintwenty 为什么啊为什么啊为什么啊
weitch
2020-11-08 12:22:37 +08:00
@lovecy #35
php 都是直接 foreach,根本不需要判断是否定义了没,写起来倍儿爽。
每次看到 js 的各种 undefined 就头疼。
wdring
2020-11-08 17:22:02 +08:00
@weitch 空数组会报错

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

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

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

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

© 2021 V2EX