php语言 百分网手机站

一套PHP面试题

时间:2020-08-11 14:22:48 php语言 我要投稿

一套PHP面试题2017

  学习是为了工作,为了运用,以下是百分网小编精心为大家整理的2017年的一套PHP面试题,希望对大家有所帮助!更多内容请关注应届毕业生网!

  1. 如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?

  答案:”http://”.$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'] // 获取网页地址

  $_SERVER['REMOTE_ADDR'] //获取IP地址

  2. 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

  $from = mktime(0,0,0,2,5,2007);

  $to = mktime(0,0,0,3,6,2007);

  echo ($to-$from)/(3600*24);

  3. 请写一个函数,实现以下功能:

  字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。

  答案:$function strOpt($str){

  $str_arr = explode(“_”,$str);

  $len = count($str_arr);

  $newStr = “”;

  $str_arr = array_reverse($str_arr);

  for($i=0;$i<$len;$i++){

  $newStr = ucfirst($str_arr[$i]).$newStr;

  }

  return $newStr;

  }

  echo strOpt(“make_by_id”);

一套PHP面试题2017

  4. 要求写一段程序,实现以下数组$arr1转换成数组$arr2:

  $arr1 = array (

  ’0′ => array (‘fid’ => 1, ‘tid’ => 1, ‘name’ =>’Name1′ ),

  ’1′ => array (‘fid’ => 1, ‘tid’ => 2 , ‘name’ =>’Name2′ ),

  ’2′ => array (‘fid’ => 1, ‘tid’ => 5 , ‘name’ =>’Name3′ ),

  ’3′ => array (‘fid’ => 1, ‘tid’ => 7 , ‘name’ =>’Name4′ ),

  ’4′ => array (‘fid’ => 3, ‘tid’ => 9, ‘name’ =>’Name5′ )

  );

  $arr2 = array (

  ’0′ => array (

  ’0′ => array ( ‘tid’ => 1, ‘name’ => ‘Name1′),

  ’1′ => array ( ‘tid’ => 2, ‘name’ => ‘Name2′),

  ’2′ => array ( ‘tid’ => 5, ‘name’ => ‘Name3′),

  ’3′ => array ( ‘tid’ => 7, ‘name’ => ‘Name4′)

  ),

  ’1′ => array (

  ’0′ => array ( ‘tid’ => 9, ‘name’ => ‘Name5′ )

  )

  );

  5. 请简述数据库设计的范式及应用。

  一般第3范式就足以,用于表结构的优化,这样做既可以避免应用程序过于复杂同时也避免了SQL语句过于庞大所造成系统效率低下。

  6.一个表中的`Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。

  DELIMITER //

  CREATE PROCEDURE ProcGet

  (

  IN ID_a INT(11)

  )

  BEGIN

  DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;

  SELECT COUNT(*) AS Sum FROM News Where ID = ID_a;

  END;//

  CALL ProcGet(88)//

  7 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

  DELIMITER //

  CREATE PROCEDURE ProcOut()

  BEGIN

  DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;

  DECLARE Sum_a INT(11);

  DECLARE Sum_b INT(11);

  DECLARE Sum_c INT(11);

  – 获取A列中的总值 <–

  DECLARE cur_1 CURSOR FOR SELECT SUM(A) FROM table_name;

  OPEN cur_1;

  FETCH cur_ 1 INTO Sum_a;

  CLOSE cur_1;

  – 获取B列中的总值 <–

  DECLARE cur_2 CURSOR FOR SELECT SUM(B) FROM table_name;

  OPEN cur_2;

  FETCH cur_ 2 INTO Sum_b;

  CLOSE cur_2;

  – 获取C列中的总值 <–

  DECLARE cur_3 CURSOR FOR SELECT SUM(C) FROM table_name;

  OPEN cur_3;

  FETCH cur_ 3 INTO Sum_c;

  CLOSE cur_3;

  IF Sum_a > Sum_b THEN

  SELECT A FROM table_name;

  ELSEIF Sum_b > Sum_c THEN

  SELECT B FROM table_name;

  ELSE

  SELECT C FROM table_name;

  END IF;;

  END;//

  CALL ProcOut()//

  8请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?

  9 如果模板是用smarty模板。怎样用section语句来显示一个名为$data的数组。比如:

  $data = array(

  [0] => array( [id]=8 [name]=’name1′)

  [1] => array( [id]=10 [name]=’name2′)

  [2] => array( [id]=15 [name]=’name3′)

  ……

  )

  写出在模板页的代码? 若用foreach语句又要怎样显示呢?


更多相关试题分享:

1.2017年PHP面试题与答案

2.2017年最新PHP工程面试题

3.PHP程序员最常见的11大面试题

4.流行的php面试题及答案

5.精选php面试题及答案

6.关于变量和日期处理的php面试题

7.2017年PHP面试题之HTTP状态码出现问题

8.PHP工程师面试题及答案

9.英文题目的PHP面试题及答案

10.常见的PHP中级程序员面试题