夜上海社区论坛

php面试题及答案

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域,自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。

  精选php面试题及答案

  一、基础题

  1. 写出如下程序的输出结果

  <?php $str1 = null;

  $str2 = false;

  echo $str1==$str2 ? 相等 : 不相等;

  $str3 = ;

  $str4 = 0;

  echo $str3==$str4 ? 相等 : 不相等;

  $str5 = 0;

  $str6 = 0;

  echo $str5===$str6 ? 相等 : 不相等;?>

  2. 写出如下程序的输出结果

  <?php $a1 = null;

  $a2 = false;

  $a3 = 0;

  $a4 = ;

  $a5 = 0;

  $a6 = null;

  $a7 = array();

  $a8 = array(array());

  echo empty($a1) ? true : false;

  echo empty($a2) ? true : false;

  echo empty($a3) ? true : false;

  echo empty($a4) ? true : false;

  echo empty($a5) ? true : false;

  echo empty($a6) ? true : false;

  echo empty($a7) ? true : false;

  echo empty($a8) ? true : false;?>

  3. 写出如下程序的输出结果

  <?php $test = aaaaaa;

  $abc = & $test;

  unset($test);

  echo $abc;?>

  4. 写出如下程序的输出结果

  <?php $count = 5;

  function get_count(){

  static $count = 0;

  return $count++;

  }

  echo $count;

  ++$count;

  echo get_count();

  echo get_count();?>

  5. 写出如下程序的输出结果

  <?php $GLOBALS[var1] = 5;

  $var2 = 1;

  function get_value(){

  global $var2;

  $var1 = 0;

  return $var2++;

  }

  get_value();

  echo $var1;

  echo $var2;?>

  6. 写出如下程序的输出结果

  <?php function get_arr($arr){

  unset($arr[0]);

  }

  $arr1 = array(1, 2);

  $arr2 = array(1, 2);

  get_arr(&$arr1);

  get_arr($arr2);

  echo count($arr1);

  echo count($arr2);?>

  7. 使用五种以上方式获取一个文件的扩展名

  要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,

  必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)

  二、算法题

  1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组

  2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

  3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数【答案】

  (以下答案不一定是最好的,只是一个简单的参考)

腾讯php程序员面试题目及答案

标签:面试笔试 时间:2021-03-01
【yjbys.com - 面试笔试】

  设计任务:

  1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东

  要求如下:

  1)要求每个QQ号码(假设此QQ号码在UNIT32 内可以表示)10分钟这内只能投5票。

  2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。

  说明:

  1)无需写代码,只需要图跟文字即可。

  2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。

  3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。

  4)存储部分,尽你所能吧。如果,你需要一个自己设计的`存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分.

  解答:

  核心问题:如何统计10分钟之内投了5票?

  首先:以秒为键切分数据集,10*60=600个时间戳桶,并添加一个Forbid令牌桶

  然后:每个数据集内,以qq号码为键,vote次数为值

  OK,已经成功转换为key-value方式存储,2000万的日投票,除以86400秒,并发231.48rps,使用memcache能够轻松胜任。

  数据集ID:201006072134

  【QQ号码:Vote次数】

  201006072134 | 201006072135 | 201006072136

  【12345:3】 | 【12345:3】 | 【12345:3】

  【88888:2】 | 【88888:3】 | 【88888:3】

比较基础的php面试题及答案

标签:笔试题目 时间:2020-11-25
【yjbys.com - 笔试题目】

  编程题:

  1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名

  例如: //www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

  答案1:

  function getExt($url){

  $arr = parse_url($url);

  $file = basename($arr['path']);

  $ext = explode(“.”,$file);

  return $ext[1];

  }

  答案2:

  function getExt($url) {

  $url = basename($url);

  $pos1 = strpos($url,”.”);

  $pos2 = strpos($url,”?”);

  if(strstr($url,”?”)){

  return substr($url,$pos1 + 1,$pos2 – $pos1 – 1);

  } else {

  return substr($url,$pos1);

  }

  }

  2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的.编码格式,以下是一个标准的 meta 语句

比较基础的php面试题及答案-填空题

标签:笔试题目 时间:2020-11-25
【yjbys.com - 笔试题目】

  填空题:

  1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER['PHP_SELF']__中;而链接到当前页面的URL记录在预定义变量__$_SERVER['HTTP_REFERER']__

  中

  2.执行程序段将输出__0__。

  3.在HTTP 1.0中,状态码 401 的含义是____;如果返回“找不到文件”的提示,则可用 header 函数,其语句为____。

  4.数组函数 arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句 error_reporting(2047)的作用是__报告所有错误和警告__。

  5.PEAR中的数据库连接字符串格式是____。

  6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):preg_replace(“//si”, “newinfo”, $script);

  7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

  LoadModule php5_module “c:/php/php5apache2.dll” , AddType application/x-httpd-php .php,

六道php面试题附答案

标签:笔试题目 时间:2020-11-25
【yjbys.com - 笔试题目】

  1、不用新变量直接交换现有两个变量的值. (考php基本功)

  答案:list($a, $b) = array($b, $a);

  2、PHP数字金额转大小格式,同时说明思路 (考数组掌握)

  3、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能力)

  4、简单写一个上传文件程序,要求同时上传文件数量可以人为控制 (逻辑能力)

  5、php同时调用3个数据库中的一个表的信息(架设A.a.aid=B.b.bid=C.c.cid),请说明思路及书写部分代码

  6、现有一IM软件,使用id、email做为注册条件,假设已注册1040人,有一zh_cn论坛,使用id、email做为注册条件,假设已注册200人,有一en_us论坛,使用id、email做为注册条件,假设已注册150人

  要求:将三者同步,使用统一的注册流程 ,写出设计思路

PHP面试题附答案

标签:笔试题目 时间:2020-11-25
【yjbys.com - 笔试题目】

  1. Which of the following will not add john to the users array?

  1. $users[] = ‘john’;

  2. array_add($users,’john’);

  3. array_push($users,’john’);

  4. $users ||= ‘john’;

  Answer: 2,4

  2. What’s the difference between sort(), asort() and ksort(),rsort()? Under what circumstances would you use each of these?

  sort(): 本函数对数组的值进行排序。当本函数结束时数组单元将被从最低到最高重新安排,array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

  asort(): 这个函数将数组的值重新排序,由小至大排列。数组的索引亦跟着值的 顺序而变动。当您在程序中需要重新整理数组值的 顺序时,就可以使用这个函数。

  ksort(): 对数组按照键名排序,保留键名到数据的关联。本函数主要用于关联数组。

  rsort(): 本函数对数组进行逆向排序(最高到最低)。与sort()执行相反的操作。