PHP面试题总汇__整理完整版

上传人:飞****9 文档编号:127723221 上传时间:2020-04-05 格式:DOC 页数:20 大小:357.95KB
返回 下载 相关 举报
PHP面试题总汇__整理完整版_第1页
第1页 / 共20页
PHP面试题总汇__整理完整版_第2页
第2页 / 共20页
PHP面试题总汇__整理完整版_第3页
第3页 / 共20页
PHP面试题总汇__整理完整版_第4页
第4页 / 共20页
PHP面试题总汇__整理完整版_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《PHP面试题总汇__整理完整版》由会员分享,可在线阅读,更多相关《PHP面试题总汇__整理完整版(20页珍藏版)》请在金锄头文库上搜索。

1、- LAMP 40 -PHP的意思PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页什么是面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。SESSION 与 COOKIE的区别是什么,请从协议,产生的原因与作用说明? 1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。2、SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进行

2、传递。禁用cookie后,session不能正常使用。Session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。Session文件是公有的。不使用cookie向客户端发送一个cookie. 理解:session_start()开启时,生成一个常量 SID,当COOKIE开启时,这个常量为空,当COOKIE关闭时,这个常量中存储了PHPSESSID的值。通过在URL后加一个SID参数来传递SESSIONID的值,从而使客户端页面可以使用SE

3、SSION里面的值。 当客户端开启COOKIE和服务器端开启SESSION时。 浏览器第一次请求,服务器会向浏览器端发送一个COOKIE里面存储SESSIONID. 当浏览器第二次请求时,会把已存在的COOKIE一起提交到服务器端。简述Cookie的设置及获取过程设置COOKIE的值:Setcookie(名称,值,保存时间,有效域);获取值:$_COOKIE名称;HTTP 状态中302、403、 500、200、404、502代码含义?一二三四五原则: 一. 消息系列二. 成功系列 三. 重定向系列四. 请求错误系列五. 服务器端错误系列 302:临时转移成功,请求的内容已转移到新位置 403

4、:禁止访问 500:服务器内部错误 401代表未授权。 200是请求成功,404是文件未找到,502是服务器内部错误。请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?19、 Int 整数 char 定长字符 Varchar 变长字符 Datetime 日期时间型 Text 文本型 Varchar 与char的区别 char是固定长度的字符类型,分配多少空间,就占用多长空间。 Varchar是可变长度的字符类型,内容有多大就占用多大的空间,能有效节省空间。 Varchar是变长,节省存储空间,char是固定长度。

5、查找效率要char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步骤,所以效率低一些MyISAM 和 InnoDB 的基本区别?索引结构如何实现?MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。创建索引:alert table tablename add index (字段名)isset() 和 empty() 区别 Isset判断变量是否存在,如果存在则返回真,empty判断变量是否为

6、空为假,如果为空为假则返回真。include与require的区别?1.include()在执行文件时每次都要进行读取和评估 require()文件只处理一次(实际上文件内容替换了require()语句)2.require()通常放在PHP脚本程序的最前面 include()的使用和require()一样,一般放在流程控制的处理区段中,PHP脚本文件读到include()语句时,才将它包含的文件读进来,这种方式,可以把程序执行时的流程简单化3,require()和include()语句是语言结构,不是真正的函数,可以像PHP的其他语言结构一样4,include_once()和require_o

7、nce()语句也是在脚本执行期间包括并运行指定文件,与include()require()唯一的区别是如果文件中的代码已经被包括了,则不会再次包括.5,require()包含文件失败,停止执行,给出错误(致命的)include()常用于动态包含.通常是自动加载的文件,即使加载出错,整个程序还是继续执行一个页面声明,另一个页面调用包函文件失败,继续向下执行,返回一条警告PHP字符串中单引号与双引号的区别?单引号不能解释变量,而双引号可以解释变量。单引号不能转义字符,在双引号中可以转义字符。请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?按值传递:函数范围内对值的任何改变在函数外

8、部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。function test(&$a)$a=$a+100;$b=1;echo $b;/输出test($b); /这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值就可以改变$b的值了echo ;echo $b;/输出101in, not ni, exist, not exist的作用和区别?in在什么中Not in 不在什么中Exists 存

9、在Not exists 不存在面向对象中接口和抽象类的区别及应用场景?1、有抽象方法的类叫做抽象类,抽象类中不一定有抽象方法,抽象方法必须使用abstract关键字定义。2、接口中全部是抽象方法,方法不用使用abstract定义。3、当多个同类的类要设计一个上层,通常设计为抽象类,当多个异构的类要设计一个上层,通常设计为接口。echo(),print(),print_r()的区别?echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) Print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的

10、值(如数组,对象) echo 输出一个或者多个字符串mysql_fetch_row() 和mysql_fetch_array之间有什么区别?Mysql_fetch_row()以索引数组的方式取查询的结果集,mysql_fetch_array()以索引数组和关联数组两种方式取查询的结果集。请描述出两点以上XHTML和HTML最显著的区别(1)XHTML必须强制指定文档类型DocType,HTML不需要(2)XHTML所有标签必须闭合,HTML比较随意33. HTTP协议中GET、POST和HEAD的区别?HEAD: 只请求页面的首部。GET: 请求指定的页面信息,并返回实体主体。POST: 请求

11、服务器接受所指定的文档作为对所标识的URI的新的从属实体。(1)HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。(2)在FORM提交的时候,如果不指定Method,则默认为GET请 求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为 该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;GET方式提交的数据最多

12、只能有1024字节,而POST则没有此限制。(3) GET 这个是浏览器用语向服务器请求最常用的方法。POST这个方法也是用来传送数据的,但是与GET不同的是,使用POST的时候,数据不是附在URI后面传递的,而是要做为独立的行来传递,此时还必须要发送一个Content_length标题,以标明数据长度,随后一个空白行,然后就是实际传送的数据。网页的表单通常是用POST来传送的。表单中 get与post提交方法的区别?1. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与

13、其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。2. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。3. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。get安全性非常低,post安全性较高。foo()和foo()之间有什么区别?(1分)foo()控制错误输出线性表和顺序表的区别?1、线性表包括顺序表和链表。2、顺序表中的元素的地址是连续的,

14、链表里面节点的地址不是连续的,是通过指针连起来的。什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么?索引用来快速地寻找那些具有特定值的记录。主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARYKEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。索引的缺点:1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。3、当对表中的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维

15、护速度。浏览器IE和非IE浏览器的划分,区别是什么?IE浏览器指的是使用IE内核的浏览器,对一些W3C标准的网页代码的支持不是很好。非IE浏览器指的是没有使用IE内核的浏览器,对W3C标准的网页代码有很好的支持。数据库中的事务是什么?事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作 完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。解释:左连接,右连接,内连接,索引。1、內连接仅选出两张表中互相匹配的记录因此,这会导致有时我们需要的记录没有包含进来。内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来。2、左连接和右连接都是外部连接,也就是区别于内部连接,它对不满足连接条件的行并不是象内部连接一样将数据完全过滤掉,而是保留一部分数据,行数不会减少。3、左连接是只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号