加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 交互 > 正文

PHP面试题大全(值得收藏)

发布时间:2020-12-24 18:48:17 所属栏目:交互 来源:网络整理
导读:副标题#e# PHP进阶、面试;文档、视频资源点击免费获取 一 、PHP基础部分 1、PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows、Linux等)上配置,不受操作系统的限制,所

在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一个软件下载站点。

当然以上随系统附带的模型被称为系统模型,用户可以自己定义一些模型,比如图书、音乐专辑等,自定义了这些模型才可以构建更多内容形式的站点。

相当于我们自动添加了表结构,适应现在当前需求的变化

10、dede中概念,设计和使用模板,必须要理解下面几个概念

(1)板块(封面)模板:

指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

(2)列表模板:

指网站某个栏目的所有文章列表的模板,一般用 “list_识别ID.htm” 命名。

(3) 档案模板:

表示文档查看页的模板,如文章模板,一般用 “article_识别ID.htm” 命名。

(4) 其它模板:

一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

11、dede中几种标签的使用?

列表 内容 等标签 只能在其本范围内使用,列表标签只能在列表中使用,内容标签只能在内容标签中使用。

全局标签能在所有页面中使用

12、熟悉常用类库

(例如:dedesql.class.php);熟悉系统函数库(common.func.php);熟悉自定义函数库(extend.func.php);熟悉前台入口文件(common.inc.php)

七、微信公众平台开发

1、微信运行机制

公众号与php之间用什么语言通信:Xml

Weixin.php中是如何接收公众号数据的:

2、消息类型

微信目前提供了7种基本消息类型,分别为:

(1)文本消息(text);

(2)图片消息(image);

(3)语音(voice)

(4)视频(video)

(5)地理位置(location);

(6)链接消息(link);

(7)事件推送(event)

类型。掌握不同的消息类型发送时的数据传递格式

3、将整个文件读入一个字符串的函数是

File_get_contents

4、常用函数

把xml数据解析成对象的函数是

simplexml_load_string( )

将字符串转换为数组的函数是___ explode_________,将数组转化为字符串的函数是____implode________.

编码 URL 字符串的字符串是____urlencode________.

5、Sprintf函数的作用

这个都是可以查手册的。

6、微信公众号出现无法提供服务的原因?

(1)网络原因 ,数据接口原因

(2)代码错误,怎么推测原因

修改的哪里检查一下,如果代码没错

可以输出数据 看一下。用php操作文件

7、自定义菜单的事件推送

单击

单击跳转链接

扫码推事件

扫码推且弹出

弹出系统拍照发图的事件

弹出微信相册发图器的事件

弹出地理位置选择器的事件

8、token的作用

安全机制验证,用于微信服务器与PHP服务器之间的安全验证

9、Appid与secrect的作用

请求api接口(例如菜单的操作)时需要传appid与secrect两个值,用来获取应用的授权码

laravle面试题

PHP7 和 PHP5 的区别,具体多了哪些新特性?

性能提升了两倍

结合比较运算符 (<=>)

标量类型声明

返回类型声明

try…catch 增加多条件判断,更多 Error 错误可以进行异常处理

匿名类,现在支持通过new class 来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义

…… 了解更多查看文章底部链接 PHP7 新特性

为什么 PHP7 比 PHP5 性能提升了?

变量存储字节减小,减少内存占用,提升变量操作速度

改善数组结构,数组元素和 hash 映射表被分配在同一块内存里,降低了内存占用、提升了 cpu 缓存命中率

改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率

laravel 模块

服务提供者是什么?

服务提供者是所有 Laravel 应用程序引导启动的中心,Laravel 的核心服务器、注册服务容器绑定、事件监听、中间件、路由注册以及我们的应用程序都是由服务提供者引导启动的。

IoC 容器是什么?

IoC(Inversion of Control)译为 「控制反转」,也被叫做「依赖注入」(DI)。什么是「控制反转」?对象 A 功能依赖于对象 B,但是控制权由对象 A 来控制,控制权被颠倒,所以叫做「控制反转」,而「依赖注入」是实现 IoC 的方法,就是由 IoC 容器在运行期间,动态地将某种依赖关系注入到对象之中。

其作用简单来讲就是利用依赖关系注入的方式,把复杂的应用程序分解为互相合作的对象,从而降低解决问题的复杂度,实现应用程序代码的低耦合、高扩展。

Laravel 中的服务容器是用于管理类的依赖和执行依赖注入的工具。

Facades 是什么?

Facades(一种设计模式,通常翻译为外观模式)提供了一个”static”(静态)接口去访问注册到 IoC 容器中的类。提供了简单、易记的语法,而无需记住必须手动注入或配置的长长的类名。此外,由于对 PHP 动态方法的独特用法,也使测试起来非常容易。

Contract 是什么?

Contract(契约)是 laravel 定义框架提供的核心服务的接口。Contract 和 Facades 并没有本质意义上的区别,其作用就是使接口低耦合、更简单。

依赖注入的原理?

这个就不解释了吧,这是理解 IoC 容器的前提。

什么是 Composer, 工作原理是什么?

Composer 是 PHP 的一个依赖管理工具。工作原理就是将已开发好的扩展包从 packagist.org composer 仓库下载到我们的应用程序中,并声明依赖关系和版本控制。

缓存

Redis、Memecached 这两者有什么区别?

Redis 支持更加丰富的数据存储类型,String、Hash、List、Set 和 Sorted Set。Memcached 仅支持简单的 key-value 结构。

Memcached key-value存储比 Redis 采用 hash 结构来做 key-value 存储的内存利用率更高。

Redis 提供了事务的功能,可以保证一系列命令的原子性

Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中

Redis 只使用单核,而 Memcached 可以使用多核,所以平均每一个核上 Redis 在存储小数据时比 Memcached 性能更高。

Redis 如何实现持久化?

RDB 持久化,将 redis 在内存中的的状态保存到硬盘中,相当于备份数据库状态。

AOF 持久化(Append-Only-File),AOF 持久化是通过保存 Redis 服务器锁执行的写状态来记录数据库的。相当于备份数据库接收到的命令,所有被写入 AOF 的命令都是以 redis 的协议格式来保存的。

数据库

什么是索引,作用是什么?常见索引类型有那些?Mysql 建立索引的原则?

索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针,相当于书本的目录。其作用就是加快数据的检索效率。常见索引类型有主键、唯一索引、复合索引、全文索引。

索引创建的原则

最左前缀原理

选择区分度高的列作为索引

尽量的扩展索引,不要新建索引

高并发如何处理?

使用缓存

优化数据库,提升数据库使用效率

负载均衡

PHP 的设计模式就不多讲了,但是 SOLID 设计原则是每一位 PHPer 都必须要掌握的。

一 、PHP基础部分

1、PHP语言的一大优势是跨平台,什么是跨平台?

PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows、Linux等)上配置,不受操作系统的限制,所以叫跨平台

2、WEB开发中数据提交方式有几种?有什么区别?百度使用哪种方式?

Get与post两种方式

区别:

(1)url可见性:get 方式url参数可见,post 不可见

(2)可缓存性:get 方式是可以缓存的,post 方式不可以缓存。

(3)传输数据大小:get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大);post 请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

(4)数据传输上:get 方式通过url地址栏拼接参数进行传输,post 方式通过body体进行传输。

建议:

1、get式安全性较Post式要差些包含机密信息建议用Post数据提交式;

2、做数据查询建议用Get式;做数据添加、修改或删除建议用Post方式;

百度使用的get方式,因为可以从它的URL中看出

3、掌握PHP的哪些框架、模板引擎、系统等

框架:框架有很多,例如CI、Yii、Laravel等等,咱们学过的是thinkphp

模板引擎:也有很多,在课本中有,咱们学过的是smarty

系统:有很多,例如:康盛的产品(uchome、supesite、discuzX等),帝国系统、DEDE(织梦)、ecshop等,咱们学过的是DEDECMS、Ecshop

4、说一下你所掌握的网页前端技术有哪些?

熟练掌握DIV+CSS网页布局,JavaScript,jQuery框架、photoshop图片处理

5、AJAX的优势是什么?

ajax是异步传输技术,可以通过javascript实现,也可以通过JQuery框架实现,实现局部刷新,减轻了服务器的压力,也提高了用户体验。

6、安全对一套程序来说至关重要,请说说在开发中应该注意哪些安全机制?

(1)使用验证码防止注册机灌水。

(2)使用预处理,绑定参数,参数过滤转义 防止sql注入

(3)使用token防止远程提交,使用token验证登录状态。

7、在程序的开发中,如何提高程序的运行效率?

(1)优化SQL语句,查询语句中尽量不使用select *,用哪个字段查哪个字段;少用子查询可用表连接代替;少用模糊查询。

(2)数据表中创建索引。

(3)对程序中经常用到的数据生成缓存(比如使用redis缓存数据,比如使用ob进行动态页面静态化等等)。

(4)对mysql做主从复制,读写分离。(提高mysq执行效率和查询速度)

(5)使用nginx做负载均衡。(将访问压力平均分配到多态服务器)

8、PHP可否与其它的数据库搭配使用?

PHP与MYSQL数据库是最优搭配,当然PHP也可以去其它的数据库搭配使用,例如PostgreSql,SqlServer,Oracle,SqlLite等。

9、现在编程中经常采取MVC三层结构,请问MVC分别指哪三层,有什么优点?

MVC三层分别指:业务模型、视图、控制器,由控制器层调用模型处理数据,然后将数据映射到视图层进行显示。

优点是:①可以实现代码的重用性,避免产生代码冗余;②M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式

10、对json数据格式的理解?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,json数据格式固定,可以被多种语言用作数据的传递。

PHP中处理json格式的函数为json_decode( string $json [,它们包含着对数据表里所有记录的引用指针,相当于书本的目录。其作用就是加快数据的检索效率。常见索引类型有主键、唯一索引、复合索引、全文索引。

索引创建的原则

最左前缀原理

选择区分度高的列作为索引

尽量的扩展索引,不要新建索引

高并发如何处理?

使用缓存

优化数据库,提升数据库使用效率

负载均衡

PHP 的设计模式就不多讲了,但是 SOLID 设计原则是每一位 PHPer 都必须要掌握的。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读