|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。 从.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.\n" , ( $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.\n" , ( $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次
所以就招致了履行效力相差了接近一倍的速度。在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。 |
|