php语言

初级PHP程序员面试经验分享

时间:2024-06-08 02:20:21 秀雯 php语言 我要投稿
  • 相关推荐

初级PHP程序员面试经验分享

  有些phper们认为天下面试题目一大把,不能考核一个人的真实水平,想知道在网络上流传很广的一部分php工程师面试题目,其实细细研究起来,无论怎样,能存在就表明其有存在的价值。小编在网上收集了PHP程序员面试技巧之口试题供大家参考,希望对大家有所帮助。

初级PHP程序员面试经验分享

  1、PHP的意思,它能干些什么?

  PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页,英文的全称(Professional Home Pages)

  a、WEB开发、实现订单、网络通信、在线支付、一切互联网可以实现的工作。

  b、脚本的开发,Shell 脚本、 windows的计划任务等。

  c、软件的开发,PHP-GTK等第三方的软件,使用php语法配合其他的语言开发软件。

  2、谈谈对mvc的认识?

  由模型(Model),视图(View),控制器(Controller)完成的应用程序。 由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;参考《PHP100视频教程》43、44、75、76、77讲。

  3、GD库是做什么用的?

  GD库提供了一系列用来处理图片的功能,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。现在常用的GD2功能更强大,可以实现对gif、png图片的处理。

  4、数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么别?

  int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串 ,char的场地固定为创建表设置的长度,varchar为可变长度的字符

  5、表单中 get与post提交方法的区别?

  get是发送请求HTTP协议通过url参数传递进行接收 而post是实体数据,可以通过表单提交大量信息.

  6、session与cookie的区别?

  session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的一般用于后台和安全性比较高的地方。cookie:是存储在客户端,对于Cookie来说是存储在用户浏览器下面的,一般用户

  登陆,负载压力比较大的地方。可以减轻服务器的负载。

  7、echo( ),print( ),print_r( )的区别?

  echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值print( ) 只能打印出简单类型变量的值(如int,string) print_r( ) 可以打印出复杂类型变量的值(如数组,对象) Echo 输出一个或者多个字符串

  8、什么是模板技术、能够使HTML和PHP分离开使用的模板?

  模板技术就是使PHP和HTML、CSS、JS 分离,实现更加合理和代码的部署Smarty ,XTemplate, Template Lite, Easy Template…

  9、使用哪些工具进行版本控制?

  Cvs 、 Svn 、Vss 参考《PHP100视频教程》94、95讲

  10、对于大流量的网站,您采用什么样的方法来解决访问量问题?

  确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表, 程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量 1、PHP程序上可以使用生成静态文件实现服务数据库压力 2、使用PHP缓存技术、或第三方的mamcached 等缓存技术实现服务器压力参考《PHP100视频教程》samrty缓存技术、mamcached缓存用法

  11、include和require的区别是什么?为避免多次包含同一文件可用什么代替它们?

  包含文件不存在或者语法错误的时候require是致命的,include不是 require需要放在头部预先载入,而include放在文件的任何位置随时载入 还有一对扩展函数:require_once( ) include_once( )

  12、mysql_fetch_row( )和mysql_fetch_array之间有什么区别?

  mysql_fetch_row 是从结果集取出1行数组,作为枚举 mysql_fetch_array 是从结果集取出一行数组作为关联数组,或数字数组,两者兼得

  初级PHP程序员大部分因为工作能力的缺失,难免会缺乏自信,对程序员的岗位认知比较差,那么我就简单的分享下初级PHP程序员面试时有那些问题,改如何应对?

  第一:当你是还处在初级程序员要做好应对专业性的问题

  面试的时候可能会遇到专业点的面试官,有时候可能会询问一下比较抽象的概念,如面向对象的理解、MVC和MVVM设计模式的理解。其它的如session、各种奇奇怪怪的函数(很多根本记不住,基本靠手册)、简单的算法等等,如果已经PHP入门,那么应该是没什么问题的。

  第二:综合性的问题也时不时的考核下

  为了考核程序员的综合素质,有的面试官也不排除可能会出现一些干扰性的问题,多继承、异步、垃圾回收机制(GC,貌似5.x版本以后才有)等等。

  第三:会要求一定的web前端的知识

  少量前端的问题几乎不可避免,LOW一点的问题比如怎么做web按键响应这种,进阶一点的比如CSS+DIV页面架构,原生JS、JQuery、AngularJS的应用。不要觉得应聘PHP工程师为什么还要问前端的问题,小公司问这些是因为小型团队开发Web应用时这些都是必备的功夫,公司在考虑人力成本问题上自然不希望一个本来规模就不大的研发部门还要细分为多个工种,第四:数据库方面是要有一定准备的

  至于数据库方面,了解基本知识+优化即可,framework会帮你搞定其他的东西。而大公司除了以上技术问题,更可能考量面试者的综合素质、团队能力、职业素养等,这些则需要时间的沉淀和充分的准备。

  第五:每次面试时要保持一个好的心态

  调整心态和形象,良好的第一印象非常非常重要。

  PHP面试常见题型

  php中传值与传引用的区别?什么时候传值什么时候传引用?

  按值传递:函数内对值的任何改变在函数外部都会被忽略

  引用传递:函数内对值的任何改变在函数外部也能反映出这些修改

  应用场景:按值传递时,php必须复制值,而按引用传递则不需要复制值,故引用传递一般用于大字符串或对象。

  说几个你知道的设计模式?

  单例模式: 保证一个类仅有一个实例,并提供一个访问他的全局访问点例如框架中的数据库连接

  简单工厂模式: 它具有创建对象的某些方法,可以使用工厂类创建对象,而不直接使用 new。例如初始化数据库的时候会用到,比如MySQL,MSSQL

  策略模式: 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,例如进入个人主页时,根据浏览者的不同,给予不同的显示与操作

  注册模式: 提供了在程序中有条理的存放并管理一组全局对象 (object),例如ZF框架中的Zend_Registry::set

  适配器模式: 将不同接口适配成统一的API接口,例如数据操作有mysql、mysqli、pdo等,可利用适配器模式统一接口

  观察者模式: 一个对象通过添加一个方法使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。例如实现实现消息推送

  装饰器模式: 不修改原类代码和继承的情况下动态扩展类的功能,例如框架的每个Controller文件会提供before和after方法

  迭代器模式: 提供一个方法顺序访问一个聚合对象中各个元素,在PHP中将继承 Iterator 类

  原型模式: 实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。

  echo,print( ),print_r( ),printf( ),sprintf( ),var_dump( )有什么区别?

  echo :是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)

  print :是语句不是函数,有返回值 1 ,只能输出一个变量,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。

  print_r :是函数,可以打印复合类型,例如:stirng、int、float、array、object等,输出array时会用结构表示,而且可以通过print_r($str,true)来使print_r不输出而返回print_r处理后的值

  printf :是函数,把文字格式化以后输出(参看C语言)

  sprintf :是函数,跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。

  var_dump :函数,输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。

  MySQL数据库存储引擎有哪些?

  MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。

  InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。

  POST和GET有什么区别?

  GET是从服务器上获取数据,POST是向服务器传送数据

  GET是通过发送HTTP协议通过URl参数传递进行接收,而POST是实体数据,通过表单提交

  GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般被默认为不受限制。

  GET安全性非常低,POST安全性较高

【初级PHP程序员面试经验分享】相关文章:

php程序员11-08

php取整方式分享12-02

php防止SQL注入的方法分享03-30

PHP延迟静态绑定示例分享03-03

优秀的PHP程序员是怎样练成的03-19

php面试题03-18

初级会计职称考试经验分享12-03

PHP程序员常见的40个陋习03-20

最新PHP面试题11-17

PHP面试题及答案03-29