php开发工程师面试题

2024-09-20 版权声明 我要投稿

php开发工程师面试题(通用10篇)

php开发工程师面试题 篇1

【1 】Memcached、redis的使用和理解

Memcached和redis 都是一个key-value的内存式存储系统,通过hash表来存储检索结果,做到强大的缓存机制。像新浪的微博、淘宝等大流量站点都必须的使用了这些东东。

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。

【2】你对于设计模式和MVC的理解

Model-View-Controller,模型、视图、控制器,一想到MVC就会想到JAVA,因为JAVA是一个完全面向对象的语言,MVC最早出现在smalltalk中,其核心就是要将试图和数据模型分离,这样不同的程序就可以有不同的展示。

模型,即程序员写的功能、算法和数据模型,也就是我们说的系统业务逻辑层。

视图,即前端,图形界面。展示给用户看的。

控制器,主要负责对请求处理、转发和加载视图。

设计模式,说白了就是代码的设计经验的总结和归类,设计模式最早应用于建筑行业,编程的设计模式按最早的GoF所述,包括23种设计模式,主要用于面向对象的程序编程。遵循几个设计原则:开闭原则、单一职责原则、里氏替换原则、依赖注入、接口分离、迪米特原则、优先使用组合而不是继承等等。包括创建型模式、结构性模式、行为模式三类。

【3】HTTP协议1.0及1.1的区别,并简单说下HTTP协议

HTTP,超文本传输协议。它定义了浏览器和服务器的通信规则。HTTP协议是基于TCP/IP的TCP协议上,现在万维网使用的是HTTP1.1版本,其特点包括,C/S模式,请求简单(GET/POST/HEAD),灵活(可以传输任何类型的数据HTML、XML、JSON、自定义等),无连接(每次连接只处理一个请求,从发出请求到收到200状态为止断开连接),无状态。

对HTTP协议的考察主要包括,响应消息格式、请求消息格式、状态码等知识点。

一般一个HTTP协议包括:起始行(start line)、首部(header)、主体(body)三个部分。

[响应消息格式]

HTTP/1.1 200 0K

Connectlon:close

Date: Thu, 13 Oct 2005 03:17:33 GMT

Server: Apache/2.0.54(Unix)

Last—Nodified:Mon,22 Jun 1998 09;23;24 GMT

Content—Length:682l

Content—Type:text/html

这个响应消息分为3部分:1个起始的状态行(status line),首部、1个包含所请求对象本身的附属体。状态行有3个字段:协议版本字段、状态码字段、原因短语字段。

[请求消息格式]

GET /somedir/page.html HTTP/1.1Host:

mod_rewrite 使用基于正则表达式动态的修改传入请求的URL。它可以将URL映射到文件系统路径,也可以将一个URL映射到另一个URL。它使用了没有限制数量的规则来操纵URL,每条规则可以包括没有限制数量的附加条件。你可以通过多种方式来检测,如,服务器变量、环境变量、HTTP头、时间戳等。

mod_rewrite 操作整个URL路径,包括path-info的部分。一个重写规则可以被设置在http.conf或者.htaccess中。一个重写规则生成的路径可以包括一个请求字符串,或者内部的子程序处理,外部请求的重定向,或者穿透内部代理等。

2)PHP框架中的URI路由机制,与apache重写类似,一般包括通配符和正则两种规则。让用户可以重新定向(remap)URI处理程序.设定你自己的路由规则。

【5】MySQL的索引机制,复合索引的使用原则

(深入浅出MySQL一书中对索引的使用讲的比较细致)

一般都会用书本中的目录来介绍索引机制,包括有些书本会有专门的快速检索附录,就很类似于数据库的索引。

MySQL的索引包括4类:主键索引(primary key)、唯一索引(unique)、常规索引(index)、全文索引(fullindex)。

Show index from table_name;–查看表中的索引

Show status like ‘Handler_read%’ –查看索引的使用情况

复合索引,一般遵循最左前缀原则,如table_a 的 a b c 三列建复合索引

create index ind_table_a on table_a(a,b,c);

那么,只有在条件中用到a,或者a、b,或者a、b、c这样的情况下,才会用到刚建的复合索引。

【6】如何理解OOP

OOP,面向对象编程,包括三个方面,继承性、封装性、多态性,其中最根本的东西就是抽象。

继承性,即扩展性,通过子类对已经存在的父类进行功能扩展。

封装性,要求外部不能随意存取对象的内部数据,即对该类中的具体实现做封装,用户不必知道内部的具体实现,只有知道它是干什么的,怎么用就好了。

多态性,就是类的抽象和接口,同一个类能够处理多种类型对象的能力。

php程序员面试题 篇2

请列举、你能想到的所有的字符串查找算法,并加注释简单说明。

有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。

写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)

向php传入参数的两种方法。

(mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;

error_reporting 等调试函数使用

您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

posix和perl标准的正则表达式区别;

Safe_mode 打开后哪些地方受限.

您是否用过模板引擎? 如果有您用的模板引擎的名字是?

请介绍Session的原理,大型网站中Session方面应注意什么?

测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。

您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。

sort、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?

reference 跟一个正规的变量有什么分别?如何 pass by reference?在什么情况下我们需要这样做?

你如何替 PHP 的应用程式侦错?

你如何产生一个 myclass 的物件?

你会如何定义一个没有成员函式或特性的类别 myclass?

给你一行文字 $string,你会如何编写一个正规表达式,把 $string 内的 HTML 标签除去?

关于精选php面试题及答案 篇3

一、基础题

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

$str2 = false;

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

$str3 = ;

$str4 = 0;

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

$str5 = 0;

$str6 = 0;

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

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

$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. 写出如下程序的输出结果

$abc = & $test;

unset($test);

echo $abc;?>

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

function get_count(){

static $count = 0;

return $count++;

}

echo $count;

++$count;

echo get_count();

echo get_count();?>

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

$var2 = 1;

function get_value(){

global $var2;

$var1 = 0;

return $var2++;

}

get_value();

echo $var1;

echo $var2;?>

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

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内置函数【答案】

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

1.常用php面试题及答案

2.php常用面试题及答案

3.PHP面试题汇总

4.优秀php高级工程师面试题及答案

5.百度PHP面试题

6.百度php面试题目

7.腾讯php面试题

8.提问得最多的PHP面试题

9.基础php面试题

PHP开发工程师的职责 篇4

1、根据新产品开发进度和任务分配,开发相应的软件模块;

2、根据公司技术文档规范编写相应的技术文档;

3、根据需要不断修改完善软件;

4、完成程序测试;

5、研究项目技术细节,编写相应的说明书。

任职要求:

1、熟悉perl、php、javascipt等其中一技术体系;

2、精通正则表达式

3、熟练掌握SQL语法, 熟练使用Sybase、Oracle、SQL Server、MYSQL等主流数据库、相关技术及工具。

4、精通编程工具;

5、熟悉Web开发技术;

6、具备编码和撰写文档的能力;

7、熟悉软件开发流程、设计模式、体系结构;

8、独立解决技术问题,有较强的创新意识;

9、熟悉版本管理,熟悉SVN版本管理工具

10、有良好的英语读写水平。

PHP高级开发工程师的职责 篇5

1、负责公司网站及网络应用产品开发和维护;

2、根据产品需求完成架构和模块设计、编码、测试工作;

3、按照项目计划,遵循公司软件开发流程按时提交高质量代码,完成开发任务;

4、项目,软件开发设计文档的编写、维护,以及其他与项目相关工作;

5、与产品、项目经理、测试部门沟通保证产品的质量和开发进度;

6、参与产品、项目设计方案评审,并提出问题和改进意见。

职位要求:

1、计算机及相关专业,学历本科以上;

2、3年以上PHP/Web开发经验,至少有3个完整项目的开发经验;

3、熟悉Linux,MySQL,熟悉B/S系统前后端相关开发技术及框架;

4、英语读写流利,能在工作环境中熟练运用,听说流利的优先;

5、熟悉Html/CSS/Div布局,熟练使用JQuery,JavaScript,XML,AJAX ;

6、具有独立分析、解决问题的能力,具有良好的编码习惯;

PHP开发工程师的岗位职责 篇6

1、根据开发进度和任务分配,完成相应模块的开发、编程任务;

2、参与维护并不断发现和改进存在的问题、不断提升系统性能;

3、积极参与产品、功能与技术架构的改进、参与技术规范的实施。

任职要求:

1.、1-3年以上PHP开发经验,热爱软件开发工作;

2、精通PHP语言,熟悉常用主流框架Laravel、thinkphp等;

3、熟悉MVC开发模式,深入了解php的性能和安全,能独立完成模块设计和开发;

4、精通MySQL数据库,熟悉数据库设计和性能优化;

5、熟练使用linux系统,熟悉nginx等web服务器的配置和优化。

PHP开发工程师的具体职责范本 篇7

1、负责项目相关模块功能的开发;

2、维护及优化线上系统性能,提升其稳定性;

3、及时响应并解决系统突发问题。

任职要求:

1、大专及以上学历,2年以上PHP为主的中大型互联网产品软件的开发及维护工作经验;

2、熟练掌握Laravel、Thinkphp 框架使用开发;

3、熟悉Linux的基本使用;

4、熟悉Mysql数据库,熟悉redis、memcached使用及应用场景;

5、熟悉http协议、html/xhtml、javascript等前端技术栈;

PHP开发工程师的基本职责说明 篇8

1、负责游戏接入平台以及数据统计后台前后端相关功能开发;

2、分析运营需求讨论设计方案并最终落实技术方案。

3、参与平台设计和性能调优与维护。

4、负责产品平台核心业务的开发,包括后台系统、游戏对接、充值系统、SDK渠道整合、广告平台等;

岗位要求:

1、 1年或以上PHP+MySQL+Apache/Nginx项目经验;

2、熟悉php面向对象设计方法和laravel框架,熟悉掌握MVC三层设计模式;

3、熟悉laravel 框架,能独立开发,调试项目功能模块,用过laravel-admin后台框架者优先考虑;

4、熟练使用 MySQL,有使用 Memcache / Redis 等互联网应用的使用经验 ;

5、熟悉各类主流数据库如mysql,mongodb等,重点掌握mysql数据库,能够独立建库建表,考虑合理全面,熟悉掌握composer的运用;

PHP初级开发工程师的岗位职责 篇9

1、负责平台PHP开发工作;

2、团队协作与分工,按时完成每周进度要求;

3、根据数据接口文档开发接口,与前端进行数据交互。

4、负责微信小程序项目开发

任职资格:

1、精通PHP开发语言,1年PHP经验

2、熟练掌握HTML、熟悉DIV+CSS布局,熟悉Ajax,熟练掌握jquery;

3、具有MySql索引、查询、存储优化;PHP缓存技术、静态化方面的经验;

4、对编程充满热情,爱捣鼓程序,有代码洁癖,乐于了解和掌握新鲜知识;

5、对前后端合作开发有一定的认知,对交互体验有较为深入的了解;

6、具备OOP编程思想,熟悉MVC,有项目案例,有Laravel开发框架经验者优先;

7、对互联网产品熟悉,关注用户体验,对用户体验有自己的独到见解。

php开发工程师面试题 篇10

2、负责公司项目技术调研,技术选型,程序开发和维护工作

3、参与项目相关技术文档编写工作;

4、负责项目的定期维护和完善,保障其稳定可靠运行。

任职要求:

1、 具有3-5年的Web开发经验,精通PHP,至少熟悉一种php主流框架,如ThinkPHP5.0, Laravel, Yii;

2、精通JSON、AJAX技术和模板技术,熟悉css+div页面设计,熟悉javascript脚本编写,熟练使用Jquery;

3、 熟悉Redis、Memcached等缓存技术,熟悉RESTful API设计;

4、熟悉LNMP或LAMP服务器架构,有能力在linux服务器配置项目生产环境,线上发布项目程序,排查错误,解决问题;

5、熟练使用svn、git等项目版本管理工具;

6、具有大型互联网站、百万级高并发访问web项目经验者优先;

7、具备系统分析、设计及项目管理能力;

上一篇:生命科学尔雅答案下一篇:端午节活动小结