PHP if 判断怎么简写?

2016-03-26 20:43:02 +08:00
 iyaozhen

最近经常写这样的代码,感觉很啰嗦:

$array = [];

$string = "0...balabala";
// $start 和 $length 变量值不固定
$str = substr($string, 1, 10);
if ($str === false) {
    $str = '123';
}

$array[] = $str;

三目运算?

$str = substr($string, 1, 10) === false ? '123' : substr($string, 10, 10);

substr 两次影响效率?

($str = substr($string, 1, 10)) === false ? $str = '123' : null;

这样?(错误)

$str = substr($string, 0, 1) ?: '123';

有没有什么黑科技呀?

业务都还没写完,天天想这些。感觉我这是病,得治。

11314 次点击
所在节点    PHP
29 条回复
wudanyang
2016-03-26 23:40:26 +08:00
@Lucups 可以写好注释
g8287694
2016-03-26 23:47:13 +08:00
最近就在被各种简写 搞的疲惫不堪 看到这帖子 顿时一股火就直冒出来
iyaozhen
2016-03-26 23:52:33 +08:00
@g8287694 。。。淡定,我就问问,不写。😂
lostsnow
2016-03-27 01:36:24 +08:00
不要简写
yangqi
2016-03-27 01:43:06 +08:00
确实需要治,简写并不能说明你水平高,以后还会被别人背地里画圈圈的。
shuimugan
2016-03-27 02:52:58 +08:00
“调试程序的难度是写代码的两倍。因此,如果你的代码写的太聪明了,恐怕就没能力调试它了。”

我曾经改过一个可以拆成四行的三目运算符但是写在了同一行的代码,那酸爽。。。
zjqzxc
2016-03-27 10:28:48 +08:00
难道不是应该把这段代码写到一个函数里吗?
万一过几天需求改了要把 123 换成 456 难道还要挨着一个一个改。。
kiwi95
2016-03-27 12:06:58 +08:00
第一种就是推荐的写法,也不麻烦,就多两行代码而已,好理解多了。三目运算符太长了对于理解和调试都有很大的问题

像 golang 没有三目运算符就没这些事了
ppto
2016-03-31 09:10:19 +08:00
php 内核代码在线查看工具, www.phpsourcechm.com #

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

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

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

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

© 2021 V2EX