page contents

2O道精选PHP面试题,你敢来挑战吗?

PHP通常指超文本预处理器,用于面向对象、命令式编程,是一种通用开源脚本语言。其主要特点为开源性和免费性、快捷性、数据库连接的广泛性、面向过程和面向对象并用。优点是利于学习,使用广泛。此外,php还可以指菲律宾比索的标准货币代码符号,MPLS网络中的倒数第二跳弹出功能........

attachments-2021-08-b83w9MsC6129aa88e9c57.png

PHP通常指超文本预处理器,用于面向对象、命令式编程,是一种通用开源脚本语言。其主要特点为开源性和免费性、快捷性、数据库连接的广泛性、面向过程和面向对象并用。优点是利于学习,使用广泛。此外,php还可以指菲律宾比索的标准货币代码符号,MPLS网络中的倒数第二跳弹出功能。

 

1、请用简单的语言告诉我PHP是什么?

答:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言。


2PHP支持多继承吗?

答:不可以。PHP类只能继承一个父类,并用关键字“extended”标识。

 

3isset() empty() 区别

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

 

4、如何实现PHP的安全最大化?怎样避免SQL注入漏洞和XSS跨站脚本攻击漏洞?

答:基本原则:不对外界展示服务器或程序设计细节(屏蔽错误),不相信任何用户提交的数据(过滤用户提交)。

 

5PHP中获取图像尺寸大小的方法是什么?

答:

getimagesize()获取图片的尺寸

Imagesx()获取图片的宽度

Imagesy()获取图片的高度

 

6、什么事面向对象?主要特征是什么?

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

 

7、堆和栈的区别?

A、堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小;

B、栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义。

 

8、简述 private protected public修饰符的访问权限。

private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。


9、索引的作用?和它的优点缺点是什么?

答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

 

10、简述高并发网站解决方案。

A、前端优化(CND加速、建立独立图片服务器)

B、服务端优化(页面静态化、并发处理[异步|多线程]、队列处理)

C、数据库优化(数据库缓存[Memcachaed|Redis]、读写分离、分库分表、分区)

DWeb服务器优化(负载均衡、反向代理)

 

11、对于大流量的网站,您采用什么样的方法来解决访问量问题?

A、有效使用缓存,增加缓存命中率

B、使用负载均衡

C、对静态文件使用cdn进行存储和加速

D、想法减少数据库的使用

E、查看出现统计的瓶颈在哪里

F、反向代理

 

12、简述php的垃圾收集机制。

答案:php中的变量存储在变量容器zval中,zval中除了存储变量类型和值外,还有is_refrefcount字段。refcount表示指向变量的元素个数,is_ref表示变量是否有别名。如果refcount0时,就回收该变量容器。如果一个zvalrefcount1之后大于0,它就会进入垃圾缓冲区。当缓冲区达到最大值后,回收算法会循环遍历zval,判断其是否为垃圾,并进行释放处理。

 

13、语句includerequire的区别是什么?为避免多次包含同一文件,可用什么语句代替它们?

区别:

在失败的时候:

include产生一个warning,而require产生直接产生错误中断

require在运行前载入

include在运行时载入

代替:

require_once

include_once


14、如何用PHPMySQL上传视频?

答:我们可以将视频地址放到数据库中,并不一定要将真正的视频数据存放到数据库中。可以将视频数据存放在服务器的指定文件夹下,默认的上传大小是2MB,但是我们也可以在php.ini文件中修改max_file size选项来改变这个数值。


15PHP中的错误类型有哪些?

答:PHP中遇到的错误类型大致有3种。

1.提示:这基本都是一些比较正常的信息而非错误,有些甚至不会展示给用户。比如访问不存在的变量。

2.警告:这类一般是一些常规错误,会将警告信息展示给用户,但是不会影响代码的输出,比如包含一些不存在的文件。

3.错误:这是比较严重的错误,会影响整个代码的运行,比如访问不存在的PHP类。

 

16、请写出数据类型(int char varchar datetime text)的意思;请问 varchar char有什么区别?

Int 整数char 定长字符 Varchar 变长字符 Datetime 日期时间型Text 文本型 Varcharchar的区别 char是固定长度的字符类型,分配多少空间,就占用多长空间。Varchar是可变长度的字符类型,内容有多大就占用多大的空间,能有效节省空间。由于varchar类型是可变的,所以在数据长度改变的时,服务器要进行额外的操作,所以效率比char类型低。

 

17MyISAMInnoDB 的基本区别?索引结构如何实现?

AMyISAM类型不支持事务,表锁,易产生碎片,要经常优化,读写速度较快,适合用于频繁查询的应用;

BInnoDB类型支持事务,行锁,有崩溃恢复能力,读写速度比MyISAM慢,适合于插入和更新操作比较多的应用,空间占用大,不支持全文索引等。

创建索引:alert table tablename add index 索引名 (`字段名`)

 

18、请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?

按值传递:函数范围内对值的任何改变在函数外部都会被忽略

按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。

 

19、对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题。

A、确认服务器是否能支撑当前访问量;

B、优化数据库访问;

C、禁止外部访问链接(盗链), 比如图片防盗链;

D、控制文件下载,尤其是大文件;

E、使用不同主机分流(负载均衡);

F、使用浏览统计软件,了解访问量,有针对性的进行优化。

 

20 MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

A、设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率;

B、选择合适的表字段数据类型和存储引擎,适当的添加索引;

Cmysql库主从读写分离;

D、找规律分表,减少单表中的数据量提高查询速度;

E、添加缓存机制,比如memcachedredis等;

F、不经常改动的页面,生成静态页面;

G、书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE

 

总结:

PHP作为目前应用最广泛的语言之一,与其他同类的编程语言比较,php具有开发速度快、运行效率高、安全性好、可扩展性强、开源自由等特点。如果你正在寻找与PHP开发相关的工作,那么提前掌握最新的PHP面试题技巧,必然能使你在求职过程中事半功倍。

 

 

以上就是有关PHP的面试题的相关内容了,想要了解更多有关php的其它知识也可关注六星社区网站。

  • 发表于 2021-08-28 11:19
  • 阅读 ( 494 )
  • 分类:PHP开发

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1316 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章