php高级程序员面试题
2014-04-01 17:38
267 查看
1、 php中单引号和双引号的区别,哪个速度更快?为什么?(考php基本功)
单引号更快
1. 在php中,单引号内的数据不会被解析(任何变量和特殊转义字符),所以速度更快,而双引号内的数据会被解析,如变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字,
2. 数组中,如果下标不是整型,而是字符串类型,请务必用单引号将下标括起,正确的写法为$array[‘key’],而不是$array[key],因为不 正确的写法会使PHP解析器认为key是一个常量,进而先判断常量是否存在,不存在时才以“key”作为下标带入表达式中,同时出发错误事件,产生一条 Notice级错误。
2、不用新变量直接交换现有两个变理的值. (考php基本功)
$ a = 1;
$b = 2;
$a = explode(‘-’,$a.’-’.$b);
$b =$a[0];
$a = $a[1];
3、PHP数字金额转大小格式,同时说明思路 (考数组掌握)
function floatohz($value){
$result='';
$v_a=array('分','角','零','块','十',',百','千','万','十','百','千','亿');
$v_b=array('零','一','二','三','四','五','六','七','八','九','十');
$v_c=array();
$value=(string)$value;
$value=sprintf("%0.2f",$value);
$len=strlen($value);
for($i=$len;$i>=0;$i--){
$val=$value[$i];//$VALUE 不是数组
if($val!='.'){
if($val!='0')
$v_c[]=$v_b[$val].$v_a[$len-$i-1];
}
}
$v_c=array_reverse($v_c);
foreach($v_c as $val){
$result.=$val;
}
unset($v_a);unset($v_b);unset($v_c);
return $result;
}
// $value='45123056.78';
$value='23058.54';
print floatohz($value);
4、SQL查询语句如下:
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44)
让结果按10,32,22,76,13,44的顺序检索出来,请问如何书写? (sql能力)
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44) order by field(ID,10,32,22,76,13,44)
单引号更快
1. 在php中,单引号内的数据不会被解析(任何变量和特殊转义字符),所以速度更快,而双引号内的数据会被解析,如变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字,
2. 数组中,如果下标不是整型,而是字符串类型,请务必用单引号将下标括起,正确的写法为$array[‘key’],而不是$array[key],因为不 正确的写法会使PHP解析器认为key是一个常量,进而先判断常量是否存在,不存在时才以“key”作为下标带入表达式中,同时出发错误事件,产生一条 Notice级错误。
2、不用新变量直接交换现有两个变理的值. (考php基本功)
$ a = 1;
$b = 2;
$a = explode(‘-’,$a.’-’.$b);
$b =$a[0];
$a = $a[1];
3、PHP数字金额转大小格式,同时说明思路 (考数组掌握)
function floatohz($value){
$result='';
$v_a=array('分','角','零','块','十',',百','千','万','十','百','千','亿');
$v_b=array('零','一','二','三','四','五','六','七','八','九','十');
$v_c=array();
$value=(string)$value;
$value=sprintf("%0.2f",$value);
$len=strlen($value);
for($i=$len;$i>=0;$i--){
$val=$value[$i];//$VALUE 不是数组
if($val!='.'){
if($val!='0')
$v_c[]=$v_b[$val].$v_a[$len-$i-1];
}
}
$v_c=array_reverse($v_c);
foreach($v_c as $val){
$result.=$val;
}
unset($v_a);unset($v_b);unset($v_c);
return $result;
}
// $value='45123056.78';
$value='23058.54';
print floatohz($value);
4、SQL查询语句如下:
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44)
让结果按10,32,22,76,13,44的顺序检索出来,请问如何书写? (sql能力)
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44) order by field(ID,10,32,22,76,13,44)
相关文章推荐
- php面试题之三——PHP网络编程(高级部分)
- PHP程序员面试题
- php面试题之二——数据结构和算法(高级部分)
- PHP程序员面试题
- 高级php面试题(转)
- PHP中级程序员常见面试题
- PHP中级程序员常见面试题
- php高级面试题
- Java面试居然有这么多学问,看看高级程序员面试题是什么样的
- php面试题之三——PHP网络编程(高级部分)
- php高级研发或架构师必了解---面试题系列
- PHP高级工程面试题
- 整理一份PHP高级工程师面试题
- php面试题之四——Linux部分(高级部分)
- php高级程序员/php开发工程师/web技术员
- 【转】2012年7月9 – 知名网页游戏公司 PHP高级工程师 最新面试题
- php面试题之六——Linux部分(高级部分)
- [李景山php] php高级程序员简历的要点
- php面试题之四——Linux部分(高级部分)
- 整理了一份招PHP高级工程师的面试题