logo资料库

大厂必备,超详细PHP面试题.pdf

第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
资料共57页,剩余部分请下载后查看
一、PHP基础
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21
2、php权限控制修饰符有哪些?
3、SESSION 与COOKIE 的区别是什么,请从协议,产生的原因与作用说明?
4、session依赖于cookie,cookie存储着sessionid。禁用cookie,session是否可以使用。
5、说明 PHP 中传值和传引用的区别?
6、说出php 常用的字符串函数。
7、php中魔术常量和魔术方法有哪些,做简要说明
魔术方法:
魔术常量:
8、isset、empty、is_null的区别
9、什么是面向对象/OOP思想?主要特征是什么?
10、说出php 常用的数组函数。
11、写出下列几个预定义全局变量的作用?
12、include 和 require 都能把另外一个文件包含到当前文件中,他们有什么区别?
13、表单中get与post提交方法的区别?
14、php异常级别,如何处理异常?
15、Echo ,print(),print_r()的区别是什么?
16、用 PHP 写出显示客户端 IP 与服务器 IP 的代码
17、如何实现多个线程安全的写入一个文件数据
18、请谈谈您对 MVC 的理解?
19、如何快速下载一个远程 http 服务器上的图片文件到本地?
20、谈谈你对设计模式的看法,详细阐述工厂模式和单例模式。
设计模式的分类
单利模式:
工厂模式:
21、PHP 字符串中单引号与双引号的区别?
22、++i 和 i++哪一个效率高,为什么?
23、防盗链的原理和实现方式?
24、简单解释CGI,fastCGI,PHP-FPM
25、fastcgi通过端口监听和通过文件监听的区别?
26、PHP的垃圾收集机制是怎样的
27、了解 XSS 攻击吗? 如何防止 ?
28、PHP7新特性有哪些
29、接口和抽象类的区别是什么?
二、HTTP/HTTPS协议
1、请问http状态码以1、2、3、4、5开头的分别代表什么意思?
详细:
2、用户输入一个网址(www.baidu.com),到用户看到对应的网页加载完毕,此过程都发生了什么?
3、解释TCP的三次握手。
4、描述一下 HTTP 与 HTTPS 的区别?
5、什么是Http协议无状态协议?怎么解决Http协议无状态协议?
6、常用的HTTP方法有哪些?
7、URI和URL的区别
8、HTTP请求报文与响应报文格式
三、ThinkPHP5\Laravel5
1、ThinkPHP5框架的优点
2、ThinkPHP5的生命周期是如何执行的
3、ThinkPHP5的URL访问格式是怎样的?
4、ThinkPHP5路由模式有几种?
一、普通模式
二、混合模式
三、强制模式
5、TP5在安全方面做了哪些操作?
输入安全:
数据库安全:
6、Laravel5.6框架的生命周期是如何实行的?
7、Laravel框架的优点
回答案例一、
回答案例二、
8、laravel 的路由有哪几种
9、laravel 中的服务提供器的作用是什么
10、请概述中间件的作用
11、THINKPHP5如何实现关联模型?
四、接口
1、什么是RESTful API?
2、微信API开发中ACCESS TOKEN还没过期,但提示“失效”。请说出解决方案
3、接口安全方面如何设计?
4、写过接口吗,怎么定义接口的
五、Javascrip/Jquery/Ajax
1、事件冒泡和事件委托
2、添加删除替换插入到某个节点的方法
3、Javascript 作用域链?
4、谈谈 this 对象的理解.
5、什么是闭包(closure),为什么要用它?
6、对 JSON 的了解?
7、DOM 操作——怎样添加、移除、移动、复制、创建和查找节点?
8、JavaScript 原型,原型链? 有什么特点?
9、你用过 require.js 吗?它有什么特性?
10、前端开发的优化问题
11、Ajax 是什么?它最大的特点是?优缺点?
12、如何创建一个 Ajax?简述 ajax 的过程.ajax 的交互模型?
13、ajax 请求时,如何解析 json 数据
14、阐述一下异步加载
15、请解释一下 JavaScript 的同源策略.
16、如何解决跨域问题?
17、解释 jsonp 的原理,以及为什么不是真正的 ajax
18、页面编码和被请求的资源编码如果不一致如何处理?
六、NodeJS
1、对 Node 的优点和缺点提出了自己的看法
2、Node.js 的适用场景?
3、解释一下 Backbone 的 MVC 实现方式?
七、VueJS
1、Vue.js 是什么
2、Vue.jS的特点有哪些?
3、vue 中的 MVVM 模式?
4、说出至少 4种 vue当中的指令和它的用法?
5、请详细说下你对 vue生命周期的理解?
6、v-show 指令,v-if 的区别
7、如何让 css 只在当前组件中起作用
8、指令 keep-alive
9、路由嵌套
10.vuejs 中使用事件名
11、嵌套路由怎么定义?
12、active-class 是哪个组件的属性?嵌套路由怎么定义?
13、怎么定义 vue-router 的动态路由?怎么获取传过来的动态参数?
14、vue-router 有哪几种导航钩子?
15、scss 是什么?在 vue.cli 中的安装使用步骤是?有哪几大特性?
16、mint-ui 是什么?怎么使用?说出至少三个组件使用方法?
17、v-model 是什么?怎么使用? vue 中标签怎么绑定事件?
18、axios 是什么?怎么使用?描述使用它实现登录功能的流程?
19、axios+tp5 进阶中,调用 axios.post(‘api/user’)是进行的什么操作? axios.put(‘api/user/8ʹ)呢?
20、vuex 是什么?怎么使用?哪种功能场景使用它?
21、mvvm 框架是什么?它和其它框架(jquery)的区别是什么?哪些场景适合?
22、自定义指令(v-check、v-focus)的方法有哪些?它有哪些钩子函数?还有哪些钩子 函数参数?
23、vue-router 是什么?它有哪些组件?
24、Vue 的双向数据绑定原理是什么?
25、你是怎么认识 vuex 的?
26、请说下封装 vue 组件的过程?
27、vue-loader 是什么?使用它的用途有哪些?

28、请说出 vue.cli 项目中 src 目录每个文件夹和文件的用法?
八、微信公众号/小程序
1、简单描述下微信小程序的相关文件类型?
2、你使用过哪些方法,来提高微信小程序的应用速度?
九、Linux
1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?
3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
4、Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
5、建立软链接(快捷方式),以及硬链接的命令。
6、目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
7. 文件权限修改用什么命令?格式是怎么样的?
8、查看文件内容有哪些命令可以使用?
9、随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
10、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
11、移动文件用哪个命令?改名用哪个命令?
12、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
13、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
14、Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
15、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
16、Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
17、Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
18、怎么使一个命令在后台运行?
19、利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
20、哪个命令专门用来查看后台任务?
21、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
22、终止进程用什么命令? 带什么参数?
23、怎么查看系统支持的所有信号?
24、搜索文件用什么命令? 格式是怎么样的?
25、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
26、使用什么命令查看用过的命令列表?
27、使用什么命令查看磁盘使用空间? 空闲空间呢?
28、使用什么命令查看网络是否连通?
29、使用什么命令查看 ip 地址及接口信息?
30、查看各类环境变量用什么命令?
31、通过什么命令指定命令提示符?
32、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
33、通过什么命令查找执行命令?
34、怎么对命令进行取别名?
35、du 和 df 的定义,以及区别?
36、awk 详解。
37、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?
38、如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?
39、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?
40、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
41、bash shell 中的hash 命令有什么作用?
42、哪一个bash内置命令能够进行数学运算。
43、怎样一页一页地查看一个大文件的内容呢?
44、数据字典属于哪一个用户的?
45、怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?
46、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?
十、MYSQL
2、数据库事务的四个特性及含义
3、drop,delete与truncate的区别
4、索引的工作原理
5、索引的优点
6、索引的缺点
7、什么样场合下不建议创建索引?
8、数据库范式
9、MySQL中myisam与innodb的区别
10、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
11、表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问您是选择拆成子表,还是继续放一起?写出您这样选择的理由
12、数据库优化的思路
13、什么情况下设置了索引但无法使用
14、数据库中的事务是什么?
15、22.SQL注入漏洞产生的原因?如何防止?
防止SQL注入的方式:
16、 说说对SQL语句优化有哪些方法?(选择几条)
17、 char和varchar的区别?
18、MySQL数据库作发布系统的存储,一天五万条以上的增量,怎么优化?
19. 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?
20、什么是队列?排它锁,Myisam 死锁如何解决?
十一、NOSQL数据库
1、Redis、Memcache与MongoDB的区别
2.mongodb持久化原理
3、什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
4、MongoDB的特点是什么?
5、什么是缓存穿透?
6、如何避免缓存穿透?
7、什么是缓存雪崩?
8、如何避免缓存雪崩?
9、缓存数据的淘汰
10、memcache 缓存什么数据
11、Redis 如何防止高并发
12、redis 消息队列先进先出需要注意什么
十二、排序算法
1. 冒泡排序
2. 选择排序
3.插入排序
4.快速排序
十三、开发实战问题
1、做秒杀时锁表的情况如何解决?
2、架构类的东西接触过吗?
3、如何处理负载、高并发?
4、怎么实现第三方登录?
5、用户免登陆
6、缓存在什么时候应该失效
7、怎么保证促销商品不会超卖
8、商城秒杀的实现
9、购物车的原理
10、订单、库存两个表 如何保证数据的一致性?
11、支付宝流程怎么实现的
12、支付宝的支付流程,notify_url和return_url的区别
13、微信的支付流程实现
14、微信支付模式有哪些?
15、微信支付调用API需要遵循哪些规则?
16、登陆界面登陆密码,防止明文传输。一般在开发中会怎么处理?
一、PHP基础 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21 2、php权限控制修饰符有哪些? 3、SESSION 与COOKIE 的区别是什么,请从协议,产生的原因与作用说明? 4、session依赖于cookie,cookie存储着sessionid。禁用cookie,session是否可以使用。 5、说明 PHP 中传值和传引用的区别? 6、说出php 常用的字符串函数。 7、php中魔术常量和魔术方法有哪些,做简要说明 魔术方法: 魔术常量: 8、isset、empty、is_null的区别 9、什么是面向对象/OOP思想?主要特征是什么? 10、说出php 常用的数组函数。 11、写出下列几个预定义全局变量的作用? 12、include 和 require 都能把另外一个文件包含到当前文件中,他们有什么区别? 13、表单中get与post提交方法的区别? 14、php异常级别,如何处理异常? 15、Echo ,print(),print_r()的区别是什么? 16、用 PHP 写出显示客户端 IP 与服务器 IP 的代码 17、如何实现多个线程安全的写入一个文件数据 18、请谈谈您对 MVC 的理解? 19、如何快速下载一个远程 http 服务器上的图片文件到本地? 20、谈谈你对设计模式的看法,详细阐述工厂模式和单例模式。 设计模式的分类 单利模式: 工厂模式: 21、PHP 字符串中单引号与双引号的区别? 22、++i 和 i++哪一个效率高,为什么? 23、防盗链的原理和实现方式? 24、简单解释CGI,fastCGI,PHP-FPM 25、fastcgi通过端口监听和通过文件监听的区别? 26、PHP的垃圾收集机制是怎样的 27、了解 XSS 攻击吗? 如何防止 ? 28、PHP7新特性有哪些 29、接口和抽象类的区别是什么? 二、HTTP/HTTPS协议 1、请问http状态码以1、2、3、4、5开头的分别代表什么意思? 详细: 2、用户输入一个网址(www.baidu.com),到用户看到对应的网页加载完毕,此过程都发生了什么? 3、解释TCP的三次握手。 4、描述一下 HTTP 与 HTTPS 的区别? 5、什么是Http协议无状态协议?怎么解决Http协议无状态协议? 6、常用的HTTP方法有哪些? 7、URI和URL的区别 8、HTTP请求报文与响应报文格式 三、ThinkPHP5\Laravel5 1、ThinkPHP5框架的优点 2、ThinkPHP5的生命周期是如何执行的 3、ThinkPHP5的URL访问格式是怎样的? 4、ThinkPHP5路由模式有几种? 一、普通模式
二、混合模式 三、强制模式 5、TP5在安全方面做了哪些操作? 输入安全: 数据库安全: 6、Laravel5.6框架的生命周期是如何实行的? 7、Laravel框架的优点 回答案例一、 回答案例二、 8、laravel 的路由有哪几种 9、laravel 中的服务提供器的作用是什么 10、请概述中间件的作用 11、THINKPHP5如何实现关联模型? 四、接口 1、什么是RESTful API? 2、微信API开发中ACCESS TOKEN还没过期,但提示“失效”。请说出解决方案 3、接口安全方面如何设计? 4、写过接口吗,怎么定义接口的 五、Javascrip/Jquery/Ajax 1、事件冒泡和事件委托 2、添加删除替换插入到某个节点的方法 3、Javascript 作用域链? 4、谈谈 this 对象的理解. 5、什么是闭包(closure),为什么要用它? 6、对 JSON 的了解? 7、DOM 操作——怎样添加、移除、移动、复制、创建和查找节点? 8、JavaScript 原型,原型链? 有什么特点? 9、你用过 require.js 吗?它有什么特性? 10、前端开发的优化问题 11、Ajax 是什么?它最大的特点是?优缺点? 12、如何创建一个 Ajax?简述 ajax 的过程.ajax 的交互模型? 13、ajax 请求时,如何解析 json 数据 14、阐述一下异步加载 15、请解释一下 JavaScript 的同源策略. 16、如何解决跨域问题? 17、解释 jsonp 的原理,以及为什么不是真正的 ajax 18、页面编码和被请求的资源编码如果不一致如何处理? 六、NodeJS 1、对 Node 的优点和缺点提出了自己的看法 2、Node.js 的适用场景? 3、解释一下 Backbone 的 MVC 实现方式? 七、VueJS 1、Vue.js 是什么 2、Vue.jS的特点有哪些? 3、vue 中的 MVVM 模式? 4、说出至少 4种 vue当中的指令和它的用法? 5、请详细说下你对 vue生命周期的理解? 6、v-show 指令,v-if 的区别 7、如何让 css 只在当前组件中起作用 8、指令 keep-alive 9、路由嵌套 10.vuejs 中使用事件名 11、嵌套路由怎么定义?
12、active-class 是哪个组件的属性?嵌套路由怎么定义? 13、怎么定义 vue-router 的动态路由?怎么获取传过来的动态参数? 14、vue-router 有哪几种导航钩子? 15、scss 是什么?在 vue.cli 中的安装使用步骤是?有哪几大特性? 16、mint-ui 是什么?怎么使用?说出至少三个组件使用方法? 17、v-model 是什么?怎么使用? vue 中标签怎么绑定事件? 18、axios 是什么?怎么使用?描述使用它实现登录功能的流程? 19、axios+tp5 进阶中,调用 axios.post(‘api/user’)是进行的什么操作? axios.put(‘api/user/8ʹ)呢? 20、vuex 是什么?怎么使用?哪种功能场景使用它? 21、mvvm 框架是什么?它和其它框架(jquery)的区别是什么?哪些场景适合? 22、自定义指令(v-check、v-focus)的方法有哪些?它有哪些钩子函数?还有哪些钩子 函数参数? 23、vue-router 是什么?它有哪些组件? 24、Vue 的双向数据绑定原理是什么? 25、你是怎么认识 vuex 的? 26、请说下封装 vue 组件的过程? 27、vue-loader 是什么?使用它的用途有哪些?
 28、请说出 vue.cli 项目中 src 目录每个文件夹和文件的用法? 八、微信公众号/小程序 1、简单描述下微信小程序的相关文件类型? 2、你使用过哪些方法,来提高微信小程序的应用速度? 九、Linux 1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 2、怎么查看当前进程?怎么执行退出?怎么查看当前路径? 3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令? 4、Ls 命令执行什么功能? 可以带哪些参数,有什么区别? 5、建立软链接(快捷方式),以及硬链接的命令。 6、目录创建用什么命令?创建文件用什么命令?复制文件用什么命令? 7. 文件权限修改用什么命令?格式是怎么样的? 8、查看文件内容有哪些命令可以使用? 9、随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”? 10、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令? 11、移动文件用哪个命令?改名用哪个命令? 12、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢? 13、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令? 14、Linux 下命令有哪几种可使用的通配符?分别代表什么含义? 15、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数) 16、Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行? 17、Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的? 18、怎么使一个命令在后台运行? 19、利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息? 20、哪个命令专门用来查看后台任务? 21、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令? 22、终止进程用什么命令? 带什么参数? 23、怎么查看系统支持的所有信号? 24、搜索文件用什么命令? 格式是怎么样的? 25、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令? 26、使用什么命令查看用过的命令列表? 27、使用什么命令查看磁盘使用空间? 空闲空间呢? 28、使用什么命令查看网络是否连通? 29、使用什么命令查看 ip 地址及接口信息? 30、查看各类环境变量用什么命令? 31、通过什么命令指定命令提示符? 32、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
33、通过什么命令查找执行命令? 34、怎么对命令进行取别名? 35、du 和 df 的定义,以及区别? 36、awk 详解。 37、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢? 38、如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做? 39、如果你的助手想要打印出当前的目录栈,你会建议他怎么做? 40、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢? 41、bash shell 中的hash 命令有什么作用? 42、哪一个bash内置命令能够进行数学运算。 43、怎样一页一页地查看一个大文件的内容呢? 44、数据字典属于哪一个用户的? 45、怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作 用和用法呢? 46、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢? 十、MYSQL 2、数据库事务的四个特性及含义 3、drop,delete与truncate的区别 4、索引的工作原理 5、索引的优点 6、索引的缺点 7、什么样场合下不建议创建索引? 8、数据库范式 9、MySQL中myisam与innodb的区别 10、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义 11、表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问您是选择拆成子表,还是继续放一起?写 出您这样选择的理由 12、数据库优化的思路 13、什么情况下设置了索引但无法使用 14、数据库中的事务是什么? 15、22.SQL注入漏洞产生的原因?如何防止? 防止SQL注入的方式: 16、 说说对SQL语句优化有哪些方法?(选择几条) 17、 char和varchar的区别? 18、MySQL数据库作发布系统的存储,一天五万条以上的增量,怎么优化? 19. 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题? 20、什么是队列?排它锁,Myisam 死锁如何解决? 十一、NOSQL数据库 1、Redis、Memcache与MongoDB的区别 2.mongodb持久化原理 3、什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库? 4、MongoDB的特点是什么? 5、什么是缓存穿透? 6、如何避免缓存穿透? 7、什么是缓存雪崩? 8、如何避免缓存雪崩? 9、缓存数据的淘汰 10、memcache 缓存什么数据 11、Redis 如何防止高并发 12、redis 消息队列先进先出需要注意什么 十二、排序算法 1. 冒泡排序
2. 选择排序 3.插入排序 4.快速排序 十三、开发实战问题 1、做秒杀时锁表的情况如何解决? 2、架构类的东西接触过吗? 3、如何处理负载、高并发? 4、怎么实现第三方登录? 5、用户免登陆 6、缓存在什么时候应该失效 7、怎么保证促销商品不会超卖 8、商城秒杀的实现 9、购物车的原理 10、订单、库存两个表 如何保证数据的一致性? 11、支付宝流程怎么实现的 12、支付宝的支付流程,notify_url和return_url的区别 13、微信的支付流程实现 14、微信支付模式有哪些? 15、微信支付调用API需要遵循哪些规则? 16、登陆界面登陆密码,防止明文传输。一般在开发中会怎么处理?   一、PHP基础 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21 方式一:echo date('Y-m-d H:i:s',strtotime('-1 day',time())); 方式二:echo date("Y-m-d H:i:s",time()-24*3600); 2、php权限控制修饰符有哪些? public: 对外公开,可以在任何地方访问; protected:当前包下及子类可以访问; private:只有当前类可以访问 3、SESSION 与COOKIE 的区别是什么,请从协议,产生的原因 与作用说明? HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的 连接。这就意味着服务器无法从连接上跟踪会话。于是需要引入一种机制,COOKIE于是就顺应而生。 Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户 端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。 区别:(位置,大小,安全)
1、cookie 是存放在浏览器端,不同的浏览器存储的cookie数量和数据的大小都不一致。大多数情况下单个域名限 制最多保存20个cookie,每个cookie保存的数据不能超过4K。 2、session存储在服务端,默认是以文件的形式存储,也可以存储在数据库和redis、memcache等缓存内存中。 3、session是占用的服务器内存,所以内存越大,能存的值就越大,原则上讲无上限,一般用于存储对安全要求较 高的重要数据;   4、session依赖于cookie,cookie存储着sessionid。禁用 cookie,session是否可以使用。   可以通过其他方式传递sessionid。具体操作如下: 设置php.ini中的session.use_trans_sid = 1或者编译时打开打开了–enable-trans-sid选项, 让PHP自动跨页传递session id。 手动通过URL传值、隐藏表单传递session id。 用文件、数据库等形式保存session_id,在跨页过程中手动调用     5、说明 PHP 中传值和传引用的区别? 传值: 是把实参的值赋值给形参,那么对形参的修改,不会影响实参的值 传引用: 真正的以地址的方式传递参数 传递以后,形参和实参都是同一个对象,只是他们名字不同而已 对形参的修改将影响实参的值   6、说出php 常用的字符串函数。 stripos — 查找字符串首次出现的位置(不区分大小写) stripslashes — 反引用一个引用字符串 stristr — strstr 函数的忽略大小写版本 strlen — 获取字符串长度 strnatcasecmp — 使用“自然顺序”算法比较字符串(不区分大小写) strnatcmp — 使用自然排序算法比较字符串 strncasecmp — 二进制安全比较字符串开头的若干个字符(不区分大小写) strncmp — 二进制安全比较字符串开头的若干个字符 7、php中魔术常量和魔术方法有哪些,做简要说明
魔术方法: 1. __construct() 类的默认构造方法,如果construct()和与类同名的方法共同出现时,默认调用construct()而不 是同类名方法。一般情况下用户自定义构造方法也会使用construct()。 2. __destruct() 类的析构函数,当该对象的所有引用都被删除,或者对象被显式销毁时执行。 3. get( 可 以 简 单 归 纳 为 : 用 object->a的方式读取对象的属性时,如果属性a存在且是public型,那么直接 返回该属性的值;如果属性a不存在或者是protected/private这样的不可直接访问的类型,就会调用 get($name)方法并以返回值为准。一般可以使用该方法使外部可限制性地访问内部属性,或者完成类似java 中的反射操作。 4. set( value) 与get( 类 似 , 用 object->a = 17的方式给属性赋值时,如果属性a存在且是public型, 那么直接给属性a赋值皆可;如果属性a不存在或者是protected/private型,就会调用set( 法。 5. __call( arguments) / callStatic( arguments) 当调用不存在或者不可访问的方法时,会调用call( value)方 arguments)方法。而当在静态方法中调用不存在或者不可访问的方法时,会调用callStatic( arguments)方法。 6. toString() 当打印对象时会被直接调用。如echo $object; 7. __clone() 当对象被拷贝时直接调用。如 8. __isset( a = $object; name) 对不存在或者不可访问的属性使用isset()或者empty()时,isset()会被调用;当 unset一个不存在或者不可访问的属性时,unset()会被调用,否则直接unset该属性皆可。 魔术常量: 1. LINE 返回文件中的当前行号。 2. FILE 返回所在文件的完整路径。包含文件名 3. FUNCTION 返回所在函数名 称。 4. CLASS 返回所在类的名称。 5. METHOD 返回所在类方法的名称。需要注意METHOD返回的 是"class::function"的形式,而FUNCTION则返回"function"的形式。 6.DIR 返回文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(FILE)。除非 是根目录,否则目录中名不包括末尾的斜杠。不包含文件名。(PHP 5.3.0中新增) = 8、isset、empty、is_null的区别 empty() bool empty ( mixed var) 如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE isset() 如果 var 存在则返回 TRUE,否则返回 FALSE。 如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量, 将返回 FALSE。同时要注意的是一个 NULL 字节("0")并不等同于 PHP 的 NULL 常数。 is_null(): 参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE 1、它被赋值为NULL
2、它还没有赋值 3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗 9、什么是面向对象/OOP思想?主要特征是什么? 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。 主要特征:封装、继承、多态 封装:将方法,属性等封装到一个类中,通过声明访问权限来控制访问。 继承:通过继承父类,子类可以访问到父类的公共的和受保护的方法和属性。PHP只支持单继承,一个子类只支持 继承一个父类。但是可以通过链式继承来实现多继承的效果 多态:子类继承了来自父级类中的属性和方法,并对其中部分方法进行重写。于是多个子类中虽然都具有同一个方 法,但是这些子类实例化的对象调用这些相同的方法后却可以获得完全不同的结果   10、说出php 常用的数组函数。   array_keys() array_map() 返回数组中所有的键名。 把数组中的每个值发送到用户自定义函数,返回新的值。 array_merge() 把一个或多个数组合并为一个数组。 array_pop() array_push() array_rand() in_array() key() krsort() ksort() 删除数组的最后一个元素(出栈)。 将一个或多个元素插入数组的末尾(入栈)。 返回数组中一个或多个随机的键。 检查数组中是否存在指定的值。 从关联数组中取得键名。 对数组按照键名逆向排序。 对数组按照键名排序。   11、写出下列几个预定义全局变量的作用? $_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录 $_SERVER['HTTP_HOST ']//当前请求的 Host: 头部的内容 $_SERVER['REMOTE_ADDR']//正在浏览当前页面用户的 IP 地址 $_SERVER['HTTP_REFERER'] //链接到 当前页面的前一页面的 URL 地址
分享到:
收藏