在PHP设置和array_key_exists差异实证分析
1。数组中的价值判断,为空值或假,isset返回FALSE,返回真,array_key_exists;
2。执行效率是不同的,定是一个内置的运营商,array_key_exists是内置函数,PHP,isset更快。参考:PHP的功能原理及性能分析
三.当设置用于访问的值不在索引数组存在,它不会导致e_notice PHP的错误信息;
4.array_key_exists称get_defined_vars确定数组变量的存在,问题是没有用的;
测试代码:
< PHP
功能
microtime_float()
{
列表(USEC美元美元,SEC)=爆炸(
返回((浮动)$ USEC +(浮动)$秒);
}
test_arr美元{ 'AA' } = 'dd;
test_arr美元{ 'BB' } =;
test_arr美元{ 'cc} = null;
test_arr美元{ 'dd} = false;
test_arr美元=阵列(AA= > 'dd,'BB' = >,'cc= >无效,'dd= >假);
回声isset AA;var_dump(isset($ test_arr { 'AA' }));回声;
回声isset BB;var_dump(isset($ test_arr { 'BB' }));回声;
回声isset CC;var_dump(isset($ test_arr { 'cc ' }));回声;
回声时,DD是;var_dump(isset($ test_arr { 'cc ' }));回声;
回声时,没有;var_dump(isset($ test_arr {不关' }));回声;
回声key_exist AA;var_dump(array_key_exists(AA,test_arr美元));回声;
回声key_exist BB;var_dump(array_key_exists('BB',test_arr美元));回声;
回声key_exist CC;var_dump(array_key_exists('cc,test_arr美元));回声;
回声key_exist DD;var_dump(array_key_exists('dd,test_arr美元));回声;
回声key_exist没有;var_dump(array_key_exists(不关,test_arr美元));回声;
time_start美元= microtime_float();
($ i = 0;$ i < 100;$ + +){
isset($ test_arr {AA});
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
回声设置100为时间;
($ i = 0;$ i < 10000;$ + +){
isset($ test_arr {AA});
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
回声设置10000为时间;
($ i = 0;$ i < 1000000;$ + +){
isset($ test_arr {AA});
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
回声设置1000000为时间;
/ / ++++++++++++++++++++++++++++++
time_start美元= microtime_float();
($ i = 0;$ i < 100;$ + +){
array_key_exists(AA,test_arr美元);
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
100美元array_key_exists回波时间;
($ i = 0;$ i < 10000;$ + +){
array_key_exists(AA,test_arr美元);
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
10000美元array_key_exists回波时间;
($ i = 0;$ i < 1000000;$ + +){
array_key_exists(AA,test_arr美元);
}
time_end美元= microtime_float();
时间time_end美元美元美元time_start;
1000000美元array_key_exists回波时间;
希望本文能对大家的PHP程序设计有所帮助。