php如何提高程序运行效率,PHP编程之提高程序运行效率思路实例讲解_PHP教程

从这里就可以看到,第二段代码会因应数组中的键的个数去不停地作出判断次数为1 2 3的判断,所以变成了第一段代码判断次数是3,而第二段代码判断次数是6次

从.NET转去做PHP4年了,最近开始追求高性能了~~

所以开始觉得是时候要写写博客了~

来段发现物先~

$arr = array(

attr1 => 1 ,

attr2 => 1 ,

attr3 => 1 ,

);

$startTime = microtime( true );

for( $i = 0 ; $i < 1000 ; $i )

{

if( isset( $arr[attr1] ) )

{

}

if( isset( $arr[attr2] ) )

{

}

if( isset( $arr[attr3] ) )

{

}

}

$endTime = microtime( true );

printf( “%d us.

” , ( $endTime – $startTime ) * 1000000 );

$startTime = microtime( true );

for( $i = 0 ; $i < 1000 ; $i )

{

foreach( $arr as $key => $value )

{

switch( $key )

{

case attr1:

break;

case attr2:

break;

case attr3:

break;

}

}

}

$endTime = microtime( true );

printf( “%d us.

” , ( $endTime – $startTime ) * 1000000 );

?>

上面一段代码

输出结果是

us.

us.

然而,怎么看都是第一段比第二段繁琐,而且结构没有第二段清晰,

那么为什么第一段会比第二段执行快了这么多呢

我们可以看到第一段的代码中,只有3个if,

那么第二段会有多少个呢。

我们拆开了switch这个东西,可以去看看他的基本实现原理。

如果switch中,每一段case中都是使用break;结束的话,

其实这个switch好比多个if{}else if{}

所以从这个机制,我们就可以把的

foreach( $arr as $key => $value )

{

switch( $key )

{

case attr1:

break;

case attr2:

break;

case attr3:

break;

}

}

?>

转换成

foreach( $arr as $key => $value )

{

if( $key == attr1 )

{

}

else if( $key == attr2 )

{

}

else if( $key == attr3 )

{

}

}

?>

去理解,从这里就可以看到,第二段代码会因应数组中的键的个数去不停地作出判断次数为1 2 3的判断,所以变成了第一段代码判断次数是3,而第二段代码判断次数是6次

www.bkjia.comtrueTechArticle从这里就可以看到,第二段代码会因应数组中的键的个数去不停地作出判断次数为1 2 3的判断,所以变成了第一段代码判断次数是3,而第二…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值