PHP面试题 基础篇一

2020-04-01编程38

1. 什么是面向对象?主要特征是什么?

面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。

2. SESSION 与 COOKIE的区别是什么,请从协议,产生的原因与作用说明?

1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。

2、SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进行传递。

禁用cookie后,session不能正常使用。Session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。Session文件是公有的。

3. HTTP 状态中302、403、 500代码含义?

一二三四五原则: 一. 消息系列 二 成功系列 三. 重定向系列 四. 请求错误系列 五. 服务器端错误系列

302:临时转移成功,请求的内容已转移到新位置 403:禁止访问 500:服务器内部错误 401代表未授权。

4. isset() 和 empty() 区别

isset判断变量是否存在,可以传入多个变量,若其中一个变量不存在则返回假,empty判断变量是否为空为假,只可传一个变量,如果为空为假则返回真。

5. PHP session扩展默认将session数据储存在哪里?

File System

6. 如果你想要自动加载类,使用哪种函数声明?

function autoload($class_name)

7. 你所知道的php数组相关的函数?

array() // 创建数组

array_combine() // 通过合并两个数组来创建一个新数组

range() // 创建并返回一个包含指定范围的元素的数组

compact() // 建立一个数组

array_chunk() // 将一个数组分割成多个

array_merge() // 把两个或多个数组合并成一个数组

array_slice() // 在数组中根据条件取出一段值

array_diff() // 返回两个数组的差集数组

array_intersect() // 计算数组的交集

array_search() // 在数组中搜索给定的值

array_splice() // 移除数组的一部分且替代它

array_key_exists() // 判断某个数组中是否存在指定的key

shuffle() // 把数组中的元素按随机顺序重新排列

array_flip() // 交换数组中的键和值

array_reverse() // 将原数组中的元素顺序翻转,创建新的数组并返回

array_unique() // 移除数组中重复的值