PHP面试题
studyphp123
心中有岸,不怕远航!
展开
-
【PHP面试题】请写一个函数,实现以下功能:字符串 "open_door" 转换成 "OpenDoor"、“make_by_id" 转换成 "MakeById"。
规律:下划线后面的字母要变成大写;第一个单词的首字母大写;思路:用下划线进行分割,分割开后,把两个字符串都进行首字母大写,最后拼接在一起。// open_door make_by_id// 处理字符串function strHandle($str){ $return = ''; // 使用下划线分割,得到一个数组 $arr = explode('_'...原创 2019-05-07 11:32:10 · 3855 阅读 · 0 评论 -
【PHP面试题】不使用PHP函数,用方法写一个反转字符串的函数。
文章目录一、考点1、逻辑思维能力2、对PHP内置函数的熟悉程度3、字符串和数组的处理能力二、解题方法此类考点分为两类:1、一类是直接说明让大家实现神呢没有的操作;2、一类是让大家实现某种函数的功能。三、真题1、不使用PHP函数,用方法写一个反转字符串的函数。2、写一个函数,要求不使用 array_merge 完成多个数组的合并。一、考点1、逻辑思维能力2、对PHP内置函数的熟悉程度3、字符...原创 2018-11-08 17:36:35 · 2660 阅读 · 0 评论 -
【PHP面试题】(斐波那契数列)1,1,2,3,5,8,13,21,34......求第30位的数是多少,请用伪代码描述其实现方法。
文章目录一、考点逻辑思维能力二、解题方法找要处理的数组或者字符串的规律,也可能是一个数列的规律,如果要求使用伪代码实现,建议先说明规律,然后白话说明解题步骤即可。三、真题1、1,1,2,3,5,8,13,21,34......求第30位的数是多少,请用伪代码描述其实现方法。注:该题不需要用具体的代码实现,只需要用 伪代码把思路描述出来即可。2、请写一个函数,实现以下功能:字符串 "open_doo...原创 2018-11-08 17:00:46 · 5315 阅读 · 0 评论 -
【PHP面试题】请简单描述一下数据结构的特征(stack、heap、list、doubly-linked-list、queue、array(vector))。
文章目录一、考点1、常见数据结构1) Array2)LinkedList3)Stack4)Heap5)list6)doubly-linked-list7)queue8)set9)map10)graph二、解题方法先理解每种数据结构的特征,有时会遇到让用PHPdiam实现其中的数据结构,遇到此类题,先要理解该种数据结构的特征是什么,然后再实现,通常可以使用PHP的数组来模拟。三、真题用PHP实现一个...原创 2018-11-08 15:58:01 · 743 阅读 · 6 评论 -
【PHP面试题】请写出常见的排序算法,并用PHP实现冒泡排序,将数组按照从小到大的方式进行排序。
文章目录一、考点1、冒泡排序原理和实现1)原理2)实现冒泡排序最终结果:1,2,3,4,5,62、延伸1)算法的概念① 解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作;② 一个问题可以有多种算法,每种算法都不同的效率;③ 一个算法具有五个特征2)时间复杂度和空间复杂度的概念① 算法评定② 时间复杂度③ 时间复杂度计算方式④ 举例常见时间复杂度:常数阶、线...原创 2018-11-08 15:17:17 · 2982 阅读 · 0 评论 -
【PHP面试题】请简述项目中优化SQL语句执行效率的方法,从哪些方面,SQL语句如何分析?
文章目录一、考点1、查找分析查询速度慢的原因1)分析SQL查询慢的方法2)使用 show profile3)使用 show status4)使用 show processlist5)使用 explain2、优化查询过程中的数据访问1)访问数据太多导致性能下降2)确定应用程序是否在检索大量超过需要的数据,可能是太多行或列3)确认 MySQL服务器是否在分析大量不必要的数据行4)避免使用如下SQL语句...原创 2018-11-05 21:08:01 · 4407 阅读 · 2 评论 -
【PHP面试题】MySQL的SQL语句编写
文章目录一、考点1、MySQL 的关联 UPDATE 语句关联更新2、延伸:MySQL 的关联查询语句六种关联查询:1)交叉连接(`CROSS JOIN`)注:没有任何关联条件,结果是 笛卡尔积,结果集 会很大,没有意义,很少使用。2)内连接(`INNER JOIN`)注:多表中同时符合某种条件的数据记录的集合。内连接分为三类:① 等值连接:`ON A.id = B.id`; ② 不等值连接:`O...原创 2018-11-05 12:12:05 · 1364 阅读 · 0 评论 -
【PHP面试题】PHP框架有哪些?你用过哪些?各自的优缺点是什么?
文章目录一、考点1、PHP框架的差异和优缺点1)Yaf 框架优点:执行效率高、轻量级框架、可扩展性强。缺点:高版本兼容性差、底层代码可读性差、需要安装扩展、功能单一,开发需要编写大量的插件(如:做一个文件上传,还得去编写一个文件上传类)。2)Yii2 框架缺点:学习成本较高;相比 Yaf,量级较重。3)常见框架特性二、解题方法此类题目中,说明的最好是自己真正用过的框架,最好结合自己的简历,简历当中...原创 2018-11-07 15:45:05 · 1975 阅读 · 0 评论 -
【PHP面试题】谈谈你对MVC的工作原理的认识。
文章目录一、考点1、MVC工作原理1)工作原理2)生活中的MVC - 饭店点餐3)业务逻辑中的MVC - 用户注册2、常见MVC框架MVC框架3、延伸1)单一入口的工作原理① 工作原理② 特点:访问的永远都是同一个入口文件③ 优势④ 劣势2)模板引擎的理解① 常用模板引擎注:建议把 Smarty 详细复习一下。② 工作原理二、解题方法1、牢记MVC思想内容,至少能背出来2、尝试使用PHP的一个MV...原创 2018-11-07 15:19:50 · 4998 阅读 · 2 评论 -
【PHP面试题】PHP如何解决网站大流量与高并发的问题?
文章目录1、高并发架构相关概念1)并发2)我们说的高并发是什么?3)高并发的问题,我们具体该关心什么?4)常用性能测试工具① ab② wrk③ http_load④ Web Bench⑤ Siege⑥ Apache JMeter5)QPS达到极限,该怎么办?① QPS 达到 50② QPS 达到 100③ QPS 达到 800④ QPS 达到 1000⑤ QPS 达到 20002、高并发解决方案案...原创 2018-11-08 23:54:12 · 8845 阅读 · 0 评论 -
【PHP面试题】什么是防盗链?如何实现防盗链?
文章目录一、什么是防盗链?1、盗链1) 盗链是指在自己的页面上展示一些并不在自己服务器上的内容。2) 整体来说,盗链是获得他人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。3) 常见的是小站盗用大站的图片、音乐、视频、软件等资源。4) 通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器。2、防盗链行为3、防盗链概念一、防盗链的工作...原创 2018-11-15 14:58:20 · 1842 阅读 · 0 评论 -
【PHP面试题】为什么要减少HTTP请求?
文章目录一、为什么要减少HTTP请求?1、性能黄金法则2、如何改善(即减少组件话费的响应时间)?二、减少HTTP请求的方式1、图片地图2、CSS Sprites(CSS精灵)3、合并脚本和样式表4、图片使用 Base64 编码减少页面请求数一、为什么要减少HTTP请求?1、性能黄金法则只有 10%~20%的最终用户响应时间花在接收请求的HTML文档上,剩下的 80%~90%时间花在HTML文...原创 2018-11-15 22:39:17 · 1049 阅读 · 0 评论 -
【PHP面试题】数据类型及常量(包含 7种false的情况、超全局数组、预定义常量、获取服务器信息函数)
一、数据类型三个数据类型(标量、复合、特殊)标量类型:整型(int)浮点型(float)字符串(string)布尔型(boolean)复合类型:对象(object)数组(array)特殊类型:资源(resource)NULL数据类型中的注意事项:浮点型:浮点类型不能运用于比较运算中,精确的来说,不能用于相等的判断中。$a = 0.1;$...原创 2019-05-08 12:04:25 · 611 阅读 · 0 评论 -
【PHP面试题】局部变量,全局变量和引用传参在函数中的使用【代码实现】
一、解题方法着重 记忆 PHP函数的定义相关内容,理解变量作用域、静态变量、函数的参数和返回值的相关内容,重点记忆我们总结的内置函数。二、练习题1、写出如下程序的输出结果:$count = 5; // 不能在函数内部使用 function get_count(){ static $count; return $count++;}echo $count; // ...原创 2019-05-08 11:30:06 · 645 阅读 · 0 评论 -
【PHP面试题】打印处理及各自的区别(echo,print_r,var_dump,print 等)
一、打印处理print(); // 输出字符串printf(); // 输出格式化字符串print_r(); // 以易于理解的格式打印变量echo; sprintf(); // 返回格式化字符串var_dump(); // 打印变量的相关信息var_export();// 输出或返回一个变量的字符串表示二、区别1、print 和 ech...原创 2019-05-08 11:24:30 · 340 阅读 · 0 评论 -
【PHP面试题】PHP系统内置常用函数(字符串、数组、日期等)
一、时间日期函数date(); // 格式化一个本地时间/日期strtotime(); // 将任何字符串的日期时间描述解析为 Unix时间戳mktime(); // 取得一个日期的 Unix时间戳time(); // 返回当前的 Unix 时间戳microtime(); // 返回当前 Unix时间戳 和 微妙数date_default_timezone_s...原创 2019-05-08 11:18:45 · 591 阅读 · 0 评论 -
【PHP面试题】外部文件的导入 include,include_once,require,require_once 的区别
一、外部文件的导入include/require语句包含并运行指定文件;如果给出路径名按照路径来找,否则从 include_path 中查找;如果 include_path 中也没有,则从 调用脚本文件所再的目录 和 当前工作目录下 寻找;当一个文件被包含时,其中所包含的代码都继承了 include 所在行的变量范围。1、include 和 require 的区别加载过程中...原创 2019-05-08 11:13:01 · 609 阅读 · 0 评论 -
【PHP面试题】函数的返回值和函数的引用返回【代码实现】
一、函数的返回值值通过使用可选的返回语句(return)返回;可以返回包括数组和对象的任意类型;返回语句会中止函数执行,将控制权交回函数调用处;省略 return,返回值为 NULL,不可有多个返回值;【若想返回多个值,可以返回一个数组,把多个值放到一个数组中】二、函数的引用返回从函数返回一个引用,必须在函数声明和指派返回值给一个变量时,都使用引用运算符 &;代...原创 2019-05-08 11:07:43 · 735 阅读 · 0 评论 -
【PHP面试题】PHP值传递和引用传递【代码实现】
默认情况下,函数参数通过值传递;如果希望允许函数修改它的值,必须通过引用传递参数。一、值传递代码实现// 值传递:不管函数内部如何改变,函数外部不会改变$a = 1;function myFunc($a){ $a = 2;}myFunc($a);echo $a; // 1 二、引用传递代码实现// 引用传递:只要函数内部的值改变,函数外部的值就会发生改变...原创 2019-05-08 11:03:46 · 416 阅读 · 0 评论 -
【PHP面试题】浏览器缓存和压缩优化技术(HTTP缓存机制;Nginx配置缓存策略;前端代码和资源的压缩)
文章目录一、HTTP缓存机制1、高并发下只能通过提升服务器负载解决?2、缓存只能做数据库缓存吗?3、缓存分类1) HTTP缓存模型中,如果请求成功会有三种情况:2)本地缓存相关Header:3)协商缓存相关Header:4、缓存策略的选择1)适合缓存的内容2)建议使用协商缓存注意事项:3)不建议缓存的内容二、Nginx配置缓存策略1、模拟 Nginx 实现缓存2、本地缓存配置2)可以设置 Prag...原创 2018-11-19 16:27:01 · 624 阅读 · 0 评论 -
【程序功能设计】先写一个在线留言本,实现用户的在线留言功能,留言信息存储到数据库,要求书籍数据表内容以及使用PHP编码完成。
文章目录一、考点1、数据表设计分析数据表结构留言板有哪些信息需要存储?2、数据表创建语句3、选择PHP连接数据库的方式1)PDO【推荐使用】2)MySQLi3)MySQL库4、编码能力1)PDO的基本操作2)操作数据库代码3)代码实现① 准备一个表单 form.html② 接收数据 store.php二、解题方法根据考题所出功能,先分析应该存储哪些信息,设计好数据表,这一步很关键,如果编码时才发现...原创 2018-11-07 13:19:04 · 14083 阅读 · 0 评论 -
【PHP面试题】简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响?
文章目录一、考点1、MySQL索引的基础和类型1)索引的基础2)索引对性能的影响3)索引的使用场景4)索引的类型常考题:唯一索引 与主键索引 当前区别是什么?2、延伸1)MySQL索引的创建原则① 最适合索引的列是出现在 `WHERE`子句中的列,或连接子句中的列,而不是出现在 `SELECT`关键字后的列(where/on 后面的列);② 索引列的基数越大,索引的效果越好;③ 对字符串进行索引,...原创 2018-11-03 00:25:22 · 3220 阅读 · 0 评论 -
【PHP面试题】请列出3种PHP数组循环操作的语法,并注明各种循环的区别。
文章目录一. 流程控制考点1. PHP的 `遍历数组` 的 `三种方式` 及各自 `区别`;1) 遍历数组的方式:2) 区别:2. 延伸:分支结构二. 解题方法三. 真题:PHP中如何优化多个 `if...else` 语句的情况?一. 流程控制考点1. PHP的 遍历数组 的 三种方式 及各自 区别;1) 遍历数组的方式:1) 使用 for循环;2) 使用 foreach循环;3) 使...原创 2018-10-27 23:22:08 · 607 阅读 · 0 评论 -
foo()和 @foo()之间的区别
文章目录一. 运算符考点1. PHP的 `运算符` 的 `错误控制符@`的使用及其作用2. 延伸:PHP所有运算符考点(运算符的优先级、比较运算符、递增/递减运算符、逻辑运算符)① 短路作用② `||` 和 `&&` 与 `or` 和 `and` 的优先级不同二. 解题方法三. 真题下列程序中,请写出打印输出的结果:一. 运算符考点1. PHP的 运算符 的 错误控制符@的使...原创 2018-10-27 23:05:13 · 5035 阅读 · 2 评论 -
【PHP面试题】PHP的字符串的定义方式及各自区别(单引号,双引号,heredoc,newdoc)?
一. 考察点1. PHP的 字符串的 定义方式 及 各自区别;1)定义方式:单引号/ 双引号 / heredoc 和 newdoc;(三种)① 单引号:// 单引号定义变量$str = 'a b c d e f $a g'; // 此时$a会被原样输出② 双引号:// 此处可以把 '{$a}' 换成特殊字符,如 & $a &// 原因:单引号的执行原创 2018-10-27 22:47:21 · 652 阅读 · 0 评论 -
【PHP面试题】PHP的类权限控制修饰符
文章目录一、考点1、PHP的类权限控制修饰符2、延伸1) 面向对象的封装、继承和多态① 封装:成员访问权限(即 public/protected/private的访问权限问题);② 继承③ 多态:2) 魔术方法3) 设计模式二、解题方法1、着重记忆PHP面向对象的基本语法,记忆模式方法;2、理解常见设计模式三、真题请写出PHP的构造函数和析构函数一、考点1、PHP的类权限控制修饰符...原创 2018-10-31 17:44:03 · 1357 阅读 · 0 评论 -
【PHP面试题】简述 cookie 和 session的区别及各自的工作机制,存储位置等,简述 cookie 的优缺点。
文章目录一、考点1、PHP的会话控制技术1) 为什么要使用会话控制技术?2) 会话控制技术的实现方式① 通过 GET 参数传递通过GET参数传递可能存在的问题:因此,通过GET方式传递这种方法不推荐使用。② Cookie切记,切记,切记:存储在客户端!!!存储在客户端!!!存储在客户端!!!③ Session注:session 并不是完全脱离 cookie的,而是基于 cookie的。在 `php...原创 2018-10-31 16:49:34 · 1245 阅读 · 0 评论 -
【PHP面试题】正则表达式及手机号码的正则表达式。
文章目录一、考点:1. 手机号码的正则表达式编写2. 延伸:正则表达式组成及编写方法1) 正则表达式的作用:分割、查找、匹配、替换字符串2)正则表达式的组成部分:① 分隔符:② 通用原子:③ 元字符:④ 模式修正符:3) 后向引用:将前面匹配到的放到后面4) 贪婪模式取消 贪婪模式 的方法:5) 正在表达式PCRE函数6) 中文匹配① UTF-8汉字编码范围是:0x4e00-0x9fa5; UTF...原创 2018-10-30 00:13:03 · 2857 阅读 · 0 评论 -
【PHP面试题】不断在文件 hello.txt 头部写入一行 "Hello World" 字符串,要求代码完整。
一、考点1、文件读取/写入操作1) 文件打开fopen()函数:用来打开一个文件,打开时需要指定打开模式打开模式:r : 只读方式打开,并且将文件指针指向文件的开头r+ :读写方式打开,并且将文件指针指向文件的开头w :写入方式打开,将文件指针指向文件的开头,且将文件的大小清空为0w+ : 读写模式【如果文件不存在,会自动创建一个】a : 追加的写入方式,会将文件的指针指向文...原创 2018-10-31 13:03:01 · 5379 阅读 · 0 评论 -
【PHP面试题】PHP变量的作用域和静态变量
一、考点1. 变量的 作用域 和 静态 变量;1) 变量的作用域:变量的作用域也称变量的范围,变量的范围即它定义的上下文背景(也是它的生效范围)。大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件;① global关键字:// global关键字$outer = 'str'; // 全局变量function mgfun...原创 2018-10-29 19:42:41 · 697 阅读 · 0 评论 -
【PHP面试题】HTTP/1.1中,状态码 200 301 304 403 404 500 的含义。
文章目录一、考点1、HTTP协议状态码① 状态码的作用:② 五类响应:1XX、2XX、3XX、4XX、5XX ③ 常见状态码:2、延伸1) OSI 七层模型第一层: 物理层第二层: 数据链路层第三层: 网络层第四层: 传输层第五层: 会话层第六层: 表示层第七层: 应用层2) HTTP协议的工作特点和工作原理① 工作特点:② 工作原理:3) HTTP协议常见请求/响应头和请求方法 ① HTTP协议...原创 2018-11-01 14:40:13 · 3493 阅读 · 0 评论 -
【PHP面试题】您是否使用过版本控制软件?如果有,您用的版本控制软件的名字是什么?
一、考点1、版本控制软件版本控制工具一共有两种:集中式 和 分布式集中式:中间有一个中央的服务器,所有的客户机都会将我们的版本信息上传到中央服务器(即版本信息只保存在中央 服务器中),当我们去上传或者下载的时候,都是从中央服务器来进行连接的(即在此过程中,一旦中央服务器 挂掉,客户机可能就没有办法去上传和下载版本库中的内容),而且客户机是需要连接网络才可以完成上传...原创 2018-11-01 17:32:59 · 685 阅读 · 0 评论 -
【PHP面试题】下列不属于 JavaScript 语法关键/保留字的是(var、$、function、while)。
文章目录一、考点1、JavaScript基本语法1) 变量的定义2)数据类型3)创建对象4) 函数5) 运算符6) 流程控制2、延伸1)JavaScript内置对象 ① Number② String③ Boolean ④ Array ⑤ Date常考:如何使用 JS 来获取当前客户端的时间? ⑥ Math⑦ RegExp正则表达式【非常重要】2) Window 对象3)DOM 对象4) jQuer...原创 2018-11-01 20:04:40 · 4060 阅读 · 0 评论 -
【PHP面试题】请写出下面 MySQL 数据类型表达的意义(int(0)、char(16)、varchar(16)、datetime、text)。
文章目录一、考点1、MySQL数据类型① 整型类型② 实数类型③ 字符串类型④ 枚举⑤ 日期和时间类型⑥ 列属性2、延伸1) MySQL基础操作 常见操作2) MySQL数据表引擎① InnoDB 表引擎【推荐使用】② MyISAM 表引擎③ 其他表引擎注:在进行 表引擎 选择的时候,优先选择 `InnoDB`,它的性能十分得好。3) MySQL锁机制① 基础概念② 读锁③ 写锁使用场景:④ 锁粒...原创 2018-11-02 21:41:38 · 1728 阅读 · 0 评论 -
【PHP面试题】写出尽可能多的Linux命令。
文章目录一、考点1、Linux常用命令1) 系统安全2) 进程管理3) 用户管理4) 文件系统5) 系统关机和重启6) 网络应用7) 网络测试8) 网络配置9) 常用工具10) 软件包管理11) 文件查找和比较12) 文件内容查看13) 文件处理14) 目录操作15) 文件权限属性16) 文件传输2、Linux系统定时任务1) crontab 命令2) at 命令3、延伸1) vi/vim 编辑器...原创 2018-11-02 17:27:52 · 1678 阅读 · 0 评论 -
【PHP面试题】SQL语句应该考虑哪些安全性?
文章目录一、考点1、SQL查询的安全方案1)使用预处理语句防SQL注入2)写入数据库的数据要进行特殊字符的转义3)查询错误信息不要返回给用户,将错误记录到日志注意:PHP端尽量使用 `PDO` 对数据库进行相关操作,`PDO` 拥有定义预处理语句很好的支持的方法,`MySQLi` 也有,但是可扩展性不如 `PDO`,效率略高于 `PDO`,`MySQL` 函数在新版本中已经趋向于淘汰,所以不建议使...原创 2018-11-06 22:30:13 · 1326 阅读 · 0 评论 -
【PHP面试题】简述MySQL分表操作和分区的工作原理,分别说说分区和分表的使用场景和各自优缺点。
文章目录一、考点1、分区表的原理1)工作原理2)适用场景① 表非常大,无法全部存在内存,或者只在表的最后有热点数据,其他都是历史数据;② 分区表的数据更易维护,可以对独立的分区进行独立的操作;③ 分区表的数据可以分布在不同的机器上,从而高效使用资源;④ 可以使用分区表来避免某些特殊的瓶颈;⑤ 可以备份和恢复独立的分区。3)限制① 一个表最多只能有 1024 个分区;② 5.1版本中,分区表表达式...原创 2018-11-06 21:10:28 · 1572 阅读 · 0 评论 -
【PHP面试题】AJAX技术利用了什么协议?简述AJAX的工作机制。
文章目录一、考点1、AJAX的基本工作原理1) AJAX基本概念2) AJAX 工作原理① XMLHttpRequest 对象请求② XMLHttpRequest 对象响应2、延伸:jQuery的AJAX操作常用方法二、解题方法1、理解 AJAX 工作原理,这也是与面试官面聊时可能被问到的。2、牢记jQuery的AJAX操作方法,遇到AJAX编程题,先考虑jQuery的AJAX操作方式,判断是GE...原创 2018-11-01 23:35:53 · 1246 阅读 · 0 评论 -
【PHP面试题】什么是 引用变量?在PHP当中,用什么符号定义引用变量?
文章目录1. PHP引用变量考察点1)PHP的 `引用变量` 的概念 及 `定义方式`;2)延伸:PHP引用变量的原理2. 真题1. PHP引用变量考察点1)PHP的 引用变量 的概念 及 定义方式;概念 在PHP中,引用意味着用不同的名字访问同一个变量内容。定义方式 使用 & 符号2)延伸:PHP引用变量的原理赋值:将一个变量的值赋值给另一个变量,其中一个变量...原创 2018-10-25 22:53:27 · 1828 阅读 · 0 评论