当前位置:Gxlcms >
PHP教程 >
php程序中各种if判断导致程序凌乱不堪,有没有什么好的解决方案?
php程序中各种if判断导致程序凌乱不堪,有没有什么好的解决方案?
时间:2021-07-01 10:21:17
帮助过:12人阅读
由于来自需要方的压力,需要在程序中加入各种if 判断导致程序凌乱不堪,不知道有没有一种科学的方式解决这一问题。
回复内容:
只答代码技巧,不答模式架构,我觉得那没有标准答案的,当然小技巧也要看具体使用的场景。
Go ternary
if (A)
$var = xxx
else
$var = ooo
↓
$var = A ? xxx : ooo
多了解一下OOP吧,工厂模式\策略模式\装饰器模式.
可以使用多态代替条件判断,参考简单工工厂模式或策略模式等设计模式的实现。
switch可以不像if-else那样写很多的判断语句,但是还是不能够满足对修改封闭,对扩展开放的要求。
估计是嵌套if导致凌乱?exception解决问题
参考《重构:改善既有代码的设计》第 9 章 - 简化条件表达式
Replace Nested Conditional with Guard Claused(以卫语句取代嵌套条件表达式)
可以多看看大型框架的写法!!推荐zendframework
用数组和闭包
我认为一个良好的,阅读性高的程序还是不要省略大括号,也不要过多使用三目运算,更要少用 &&这种逻辑运算符来代替条件判断。真要使if变得简洁,我觉得应该少用 if后的else,多多给出返回值,讲下一个判断放在另一个if块里,另外,就要学学设计模式,减少if语句欠套。
//judge1
if(!expression){
//code
[return/break]}
//judge2
if(!expression){
//code
[return/break]}
......
switch,哈哈