把赋值运算符写在 if 判断里好吗?

2014-05-17 19:01:42 +08:00
 Jat001
太容易跟比较运算符搞混了,对 php 新手也不友好。

嗯,还是 @explon 一下吧~
6092 次点击
所在节点    PHP
30 条回复
alsotang
2014-05-17 22:41:06 +08:00
不是好习惯
Jat001
2014-05-17 22:44:51 +08:00
@explon 就是举个列子,都是把赋值和判断写一块,看着不舒服。
explon
2014-05-17 22:49:01 +08:00
@Jat001 你的例子赋值都是 100% 为真,而 model 有时候是返回 false,完全曲解了意思,公司的代码 if 赋值逻辑很清晰是 14 楼 @messense 那种逻辑,这在开源产品中很常见,按照你的描述的写法完全是多写一行。
superbear
2014-05-17 22:58:14 +08:00
@jsonline 利人利己
Jat001
2014-05-17 23:01:34 +08:00
@explon 就举了俩个简单的例子,方便理解。
第一个例子可能举的确实不好,但在第二例子中
$_GET['foo'] 有可能是空格,tab,换行符等,所以 $a = trim($_GET['foo']) 返回的可能是 false。

但我想问的是,把赋值和判断写一块好不好?是否易于理解,是否容易出错,对新手是否友好等?
explon
2014-05-17 23:10:33 +08:00
@Jat001 我们程序不会像你举例这样写,if 中赋值的情况只有在对函数处理后返回判断变量是否有数据(非字符串处理),是则下面要对数据进行二次处理的情况下出现,你的理解错了。

准确的说我们程序的代码风格很大是受了国外一款著名商业论坛程序 vBulletin 3 的影响,你有兴趣可以下一个看一看
freefcw
2014-05-17 23:11:02 +08:00
@Jat001 个人有一个原则,代码含义尽量唯一性,不出现第二个意思,方便自己也方便别人
Jat001
2014-05-17 23:22:42 +08:00
@explon 我就是吐槽这种代码风格,特别是再加个 ! 取反的时候,看着就更蛋疼了。
nekop
2014-05-18 01:08:54 +08:00
Objective-C程序员表示OK!
solupro
2014-05-21 15:53:00 +08:00
突然想到zephir有fetch这么一个操作符
http://zephir-lang.com/operators.html#fetch
额!!跑题了

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

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

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

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

© 2021 V2EX