php优化if多重嵌套语句


在做公司erp系统的过程中,遇到了一个需求。

需要读取数据库内不同的表格,并对其表A的字段,与表B的字段进行判断。

会用到多个判断语句。而本人在编写时由于没想太多大部分用的都是if判断语句来筛选。


最终形成多个if语句嵌套。

					if (!isset($factor_divide))
						{
							if($switch_state=='1') 
							{
								case '1':
							echo '' .$find_error. '' . $PriceRow['sales_type'] . _('Price') .'(' . locale_number_format($PriceRow['storeprice'],2) . ')' . ''.$PriceRow['company_state'].' ';
							}
								
							if($switch_state=='2') 
							{
echo '' .$find_error. '' . $PriceRow['sales_type'] . _('Price') .'(' . locale_number_format($PriceRow['storeprice'],2) . ')' . ''.$PriceRow['company_state'].' ';}
							if($switch_state=='0') 
							{
echo '' .$find_error. '' . $PriceRow['sales_type'] . _('Price') .'(' . locale_number_format($PriceRow['storeprice'],2) . ')' . ''.$PriceRow['company_state'].' ';}}
 
  
在本地运行时并没有出现问题。

在测试服务器上运行时,就会出现页面严重卡顿。分析原因可能是读取数据库过程中多次获取不同表会造成减慢。

修改了很多个地方发现并没有提速。


直到后来想起网上有phper说过switch case速度会快点。所以把if嵌套换成switch case 。就不卡顿了,具体原理虽然还不太明白。

不过以此为鉴,尽量少用多重嵌套。

						if (!isset($factor_divide)) 
						{
							switch ($switch_state) 
							{
								case '1':
							echo '' .$find_error. '' . $PriceRow['sales_type'] . _('Price') .'(' . locale_number_format($PriceRow['storeprice'],2) . ')' . ''.$PriceRow['company_state'].' ';
									break;
								case 2:
							echo '' .$find_error. '' . $PriceRow['sales_type'] . _('Price') .'(' . locale_number_format($PriceRow['storeprice'],2) . ')' . ''.$PriceRow['company_state'].' ';
									break;								
								case 0:
							echo '' .$find_error. '' . $PriceRow['sales_type'] . _('Price') .'(' . locale_number_format($PriceRow['storeprice'],2) . ')' . ''.$PriceRow['company_state'].' ';
									break;

							}

						}
					    


你可能感兴趣的:(php,erp功能实现,php,数据库)