2O道精选PHP面试题,你敢来挑战吗?
发布于 2021-09-04 18:42 ,所属分类:软件编程学习资料
前言/PREFACE
PHP通常指超文本预处理器,用于面向对象、命令式编程,是一种通用开源脚本语言。其主要特点为开源性和免费性、快捷性、数据库连接的广泛性、面向过程和面向对象并用。优点是利于学习,使用广泛。此外,php还可以指菲律宾比索的标准货币代码符号,MPLS网络中的倒数第二跳弹出功能。
chushu
1、请用简单的语言告诉我PHP是什么?
答:PHP全称:Hypertext Preprocessor,是一种用来开发动态网站的服务器脚本语言。
2、PHP支持多继承吗?
答:不可以。PHP类只能继承一个父类,并用关键字“extended”标识。
3、isset() 和 empty() 区别
sset判断变量是否存在,可以传入多个变量,若其中一个变量不存在则返回为假;empty判断变量是否为空为假,只可传一个变量,如果为空为假则返回真。
4、如何实现PHP的安全最大化?怎样避免SQL注入漏洞和XSS跨站脚本攻击漏洞?
答:基本原则:不对外界展示服务器或程序设计细节(屏蔽错误),不相信任何用户提交的数据(过滤用户提交)。
5、PHP中获取图像尺寸大小的方法是什么?
答:
getimagesize()获取图片的尺寸
Imagesx()获取图片的宽度
Imagesy()获取图片的高度
6、什么是面向对象?主要特征是什么?
面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。
7、堆和栈的区别?
A、堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小;
B、栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义。
8、简述 private、 protected、 public修饰符的访问权限。
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
9、索引的作用?和它的优点缺点是什么?
答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似于现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
10、简述高并发网站解决方案。
A、前端优化(CND加速、建立独立图片服务器)
B、服务端优化(页面静态化、并发处理[异步|多线程]、队列处理)
C、数据库优化(数据库缓存[Memcachaed|Redis]、读写分离、分库分表、分区)
D、Web服务器优化(负载均衡、反向代理)
11、对于大流量的网站,您采用什么样的方法来解决访问量问题?
A、有效使用缓存,增加缓存命中率
B、使用负载均衡
C、对静态文件使用cdn进行存储和加速
D、想法减少数据库的使用
E、查看出现统计的瓶颈在哪里
F、反向代理
12、简述php的垃圾收集机制。
答案:php中的变量存储在变量容器zval中,zval中除了存储变量类型和值外,还有is_ref和refcount字段。refcount表示指向变量的元素个数,is_ref表示变量是否有别名。如果refcount为0时,就回收该变量容器。如果一个zval的refcount减1之后大于0,它就会进入垃圾缓冲区。当缓冲区达到最大值后,回收算法会循环遍历zval,判断其是否为垃圾,并进行释放处理。
13、语句include和require的区别是什么?为避免多次包含同一文件,可用什么语句代替它们?
区别:
在失败的时候:
include产生一个warning,而require产生直接产生错误中断
require在运行前载入
include在运行时载入
代替:
require_once
include_once
14、如何用PHP和MySQL上传视频?
答:我们可以将视频地址放到数据库中,并不一定要将真正的视频数据存放到数据库中。可以将视频数据存放在服务器的指定文件夹下,默认的上传大小是2MB,但是我们也可以在php.ini文件中修改max_file size选项来改变这个数值。
15、PHP中的错误类型有哪些?
答:PHP中遇到的错误类型大致有3种。
1.提示:这基本都是一些比较正常的信息而非错误,有些甚至不会展示给用户。比如访问不存在的变量。
2.警告:这类一般是一些常规错误,会将警告信息展示给用户,但是不会影响代码的输出,比如包含一些不存在的文件。
3.错误:这是比较严重的错误,会影响整个代码的运行,比如访问不存在的PHP类。
16、请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?
Int 整数char 定长字符 Varchar 变长字符 Datetime 日期时间型Text 文本型 Varchar与char的区别 char是固定长度的字符类型,分配多少空间,就占用多长空间。Varchar是可变长度的字符类型,内容有多大就占用多大的空间,能有效节省空间。由于varchar类型是可变的,所以在数据长度改变的时,服务器要进行额外的操作,所以效率比char类型低。
17、MyISAM和 InnoDB 的基本区别?索引结构如何实现?
A、MyISAM类型不支持事务,表锁,易产生碎片,要经常优化,读写速度较快,适合用于频繁查询的应用;
B、InnoDB类型支持事务,行锁,有崩溃恢复能力,读写速度比MyISAM慢,适合于插入和更新操作比较多的应用,空间占用大,不支持全文索引等。
创建索引:alert table tablename add index 索引名 (`字段名`)
18、请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。
19、对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题。
A、确认服务器是否能支撑当前访问量;
B、优化数据库访问;
C、禁止外部访问链接(盗链), 比如图片防盗链;
D、控制文件下载,尤其是大文件;
E、使用不同主机分流(负载均衡);
F、使用浏览统计软件,了解访问量,有针对性的进行优化。
20、 MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
A、设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率;
B、选择合适的表字段数据类型和存储引擎,适当的添加索引;
C、mysql库主要从读写分离;
D、找规律分表,减少单表中的数据量提高查询速度;
E、添加缓存机制,比如memcached,redis等;
F、不经常改动的页面,生成静态页面;
G、书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE。
总结
PHP作为目前应用最广泛的语言之一,与其他同类的编程语言比较,php具有开发速度快、运行效率高、安全性好、可扩展性强、开源自由等特点。如果你正在寻找与PHP开发相关的工作,那么提前掌握最新的PHP面试题技巧,必然能使你在求职过程中事半功倍。
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜
相关资源