2017年最新PHP经典面试题目汇总(上篇)


Posted in PHP onMarch 17, 2017

1、双引号和单引号的区别

  • 双引号解释变量,单引号不解释变量
  • 双引号里插入单引号,其中单引号里如果有变量的话,变量解释
  • 双引号的变量名后面必须要有一个非数字、字母、下划线的特殊字符,或者用{}讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误
  • 双引号解释转义字符,单引号不解释转义字符,但是解释'\和\\
  • 能使单引号字符尽量使用单引号,单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断)

2、常用的超全局变量(8个)

  • $_GET ----->get传送方式
  • $POST ----->post传送方式
  • $REQUEST ----->可以接收到get和post两种方式的值
  • ***
  • $GLOBALS ----->所有的变量都放在里面
  • $FILE ----->上传文件使用
  • $SERVER ----->系统环境变量
  • * **
  • $SESSION ----->会话控制的时候会用到
  • $COOKIE ----->会话控制的时候会用到

3、HTTP中POST、GET、PUT、DELETE方式的区别

HTTP定义了与服务器交互的不同的方法,最基本的是POST、GET、PUT、DELETE,与其比不可少的URL的全称是资源描述符,我们可以这样理解:url描述了一个网络上资源,而post、get、put、delegate就是对这个资源进行增、删、改、查的操作!

3.1表单中get和post提交方式的区别

  • get是把参数数据队列加到提交表单的action属性所指的url中,值和表单内各个字段一一对应,从url中可以看到;post是通过HTTPPOST机制,将表单内各个字段与其内容防止在HTML的head中一起传送到action属性所指的url地址,用户看不到这个过程
  • 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据
  • get传送的数据量较小,post传送的数据量较大,一般被默认不受限制,但在理论上,IIS4中最大量为80kb,IIS5中为1000k,
  • get安全性非常低,post安全性较高

3.2

  • GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
  • 与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
  • POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
  • DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。

4、PHP介绍

Hypertext Preprocessor----超文本预处理器

Personal Home Page 原始名称

目标用途: 允许web开发人员快速编写动态生成的web页面,与其他页面相比,PHP是将程序嵌入到HTML文档中去执行,效率比完全生成HTML编辑的CGI高很多

HTML: Hypertext Markup Language

创始人: 拉姆斯勒·勒多夫Rasmus Lerdorf,1968年生,加拿大滑铁卢大学

勒多夫最开始是为了维护个人网页,用prel语言写了维护程序,之后又用c进行了重写,最终衍生出php/fi

时间轴:

  • 1995.06.08将PHP/FI公开释出
  • 1995 php2.0,加入了对MySQL的支持
  • 1997 php3.0
  • 2000 php4.0
  • 2008 php5.0
  • 由于php6.0没有完全解决Unicode编码,所以基本没有生产线上的应用,基本只是一款概念产品,很多功能已经在php5.3.3和php5.3.4上实现
  • 常见的IDE(Intergrated Development Environment): 集成开发环境

常见的HTTP状态码:

200 - 请求成功
301 - 资源(网页等)被永久转义到其他URL
404 - 请求的资源(网页等)不存在
505 - 内部服务器错误
HTTP状态码分类:

1** - 信息,服务器收到的请求,需要请求者继续执行操作
2** - 成功,操作被成功接收并处理
3** - 重定向,需要进一步的操作以完成请求
4** - 客户端错误,请求包含语法错误或者无法完成请求
5** 服务器错误,服务器在处理请求的过程
中发生了错误

8、什么是魔术引号

魔术引号是一个将自动将进入PHP脚本的数据进行转义的过程,最好在编码时不要转义而在运行时根据需要而转义

9、如何获取客户端的ip(要求取得一个int)和服务器ip的代码

客户端:$_SERVER["REMOTE_ADDR"];或者getenv('REMOTE_ADDR')
ip2long进行转换
服务器端:gethostbyname('www.baidu.com')

10、使用那些工具进行版本控制

cvs、svn、vss、git

11、优化数据库的方法

选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置NOTNULL,例如'省份'、'性别'最好适用ENUM
使用连接(JOIN)来代替子查询
适用联合(UNION)来代替手动创建的临时表
事务处理
锁定表、优化事务处理
适用外键,优化锁定表
建立索引
优化查询语句

12、是否使用过模板引擎?使用的模板引擎的名字是?

Smarty:Smarty算是一种很老的PHP模板引擎了,它曾是我使用这门语言模板的最初选择。虽然它的更新已经不算频繁了,并且缺少新一代模板引擎所具有的部分特性,但是它仍然值得一看。

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

确认服务器硬件是否能够支持当前的流量
数据库读写分离,优化数据表
程序功能规则,禁止外部的盗链
控制大文件的下载
使用不同主机分流主要流量

14、语句include和require的区别是什么?为避免多次包含同一文件,可以用(?)语句代替他们

require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行

include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去

注意:包含文件不存在或者语法错误的时候require是致命的,而include不是

require_once表示了只包含一次,避免了重复包含

15、谈谈mvc的认识

由模型、视图、控制器完成的应用程序,由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图

16、 说明php中传值与传引用的区别,并说明传值什么时候传引用?

变量默认总是传值赋值,那也就是说,当将一个表达式的值赋予一个变量时,整个表达式的值被赋值到目标变量,这意味着:当一个变量的赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量

php也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的__引用__(换言之,成为了其别名或者指向)了原始变量。改动的新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)

对象默认是传引用

对于较大是的数据,传引用比较好,这样可以节省内存的开销

以上所述是小编给大家介绍的2017年最新PHP经典面试题目汇总(上篇),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP4实际应用经验篇(7)
Oct 09 PHP
source.php查看源文件
Dec 09 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
php array_map()函数实例用法
Mar 03 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 #PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 #PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 #PHP
PHP中类的自动加载的方法
Mar 17 #PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 #PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 #PHP
php正则判断是否为合法身份证号的方法
Mar 16 #PHP
You might like
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
Js基础学习资料
2010/11/23 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
react build 后打包发布总结
2018/08/24 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
详解Golang 与python中的字符串反转
2017/07/21 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
初三班主任寄语大全
2014/04/04 职场文书
微电影大赛策划方案
2014/06/05 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
前台岗位职责范本
2015/04/16 职场文书
比赛口号霸气押韵
2015/12/24 职场文书