php面试题常见面试题
又是跳槽季,跳槽就有面试,面试难免会问一些理论问题,前面面试了几家,做了一些面试题,记住了一部分,整理了一下:
1.cookie 和session区别
session存在服务器,cookie存在浏览器;session安全性比cookie高;session为会话服务,在使用时需要开启服务,cookie不需要开启,可以直接使用。
2.redis和memcached区别
redis 系统库有个快照,即突然断电,数据还会存在,而memached 就没了
memcached 是简单的键值对,Key-Value, redis 支持的存储方式很多,应用场景很多
redis 性能比memached 要高
3.myisam和innodb区别
MyISAM 是非事务的存储引擎;适合用于频繁查询的应用;表锁,不会出现死锁;适合小数据,小并发
innodb是支持事务的存储引擎;合于插入和更新操作比较多的应用;设计合理的话是行锁(最大区别就在锁的级别上);适合大数据,大并发。
4.require和include区别
报错的时候,include报严重警告,还是会继续执行后面程序,require报致命错误,不会继续执行。
5.优化网站
(1).确认服务器是否能支撑当前访问量。
(2).优化数据库访问。
(3).禁止外部访问链接(盗链), 比如图片盗链。
(4).控制文件下载。
(5).使用不同主机分流。
(6).使用浏览统计软件,了解访问量,有针对性的进行优化。
6.数据库索引
是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似于生活中书的目录,不需要查询整本书的内容就可以找到想要的数据,索引可以是唯一的,创建索引允许指定单个列或者是多个列,缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
7.什么是构造函数,什么是析构函数,作用是什么?
构造函数(方法)是对象创建完成后第一个被对象自动调用的方法。它存在于每个声明的类中,是一个特殊的成员方法。作用是执行一些初始化的任务。Php中使用__construct()声明构造方法,并且只能声明一个。析构函数(方法)作用和构造方法正好相反,是对象被销毁之前最后一个被对象自动调用的方法。是PHP5中新添加的内容作用是用于实现在销毁一个对象之前执行一些特定的操作,诸如关闭文件和释放内存等。
8.说说对SQL语句优化有哪些方法?
(1)Where子句中:where表之间的连接必须写在其他Where条件之前,那些可以过滤掉最大数量记录的条件必须写在Where子句的末尾.HAVING最后。
(2)用EXISTS替代IN、用NOT EXISTS替代NOT IN。
(3) 避免在索引列上使用计算
(4)避免在索引列上使用IS NULL和IS NOT NULL
(5)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
(6)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
(7)应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描
9.char和varchar的区别?
char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:
char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.
(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).
10.常见关系型数据库
oracle,sql server,mysql,db2,sybase,access
11.什么是SQL注入?
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,注入者可以在表单中输入一段数据库查询代码并提交,程序将提交的信息拼凑生成一个完整sql语句,服务器被欺骗而执行该条恶意的SQL命令。注入者根据程序返回的结果,成功获取一些敏感数据,甚至控制整个服务器,这就是SQL注入。
12.ThinkPHP如何防止SQL注入
(1)查询条件尽量使用数组方式,这是更为安全的方式;
(2)如果不得已必须使用字符串查询条件,使用预处理机制;
(3)开启数据字段类型验证,可以对数值数据类型做强制转换;(3.1版本开始已经强制进行字段类型验证了)
(4)使用自动验证和自动完成机制进行针对应用的自定义过滤;
(5)使用字段类型检查、自动验证和自动完成机制等避免恶意数据的输入。
13.事务
事务是一系列的操作,是数据库应用的基本逻辑单位,事务的特性:原子性,要么全部被执行,要么全部不被执行;一致性和可串性:事务的执行使数据库从一种正确状态换成另一种正确状态。隔离性:在事务正确提交前,不允许把该事务的任何数据提交给任何其他事务。持久性:事务提交成功后,其结果将永远保存在数据库中。
14.程序开发中,如何提高程序运行效率
优化sql语句,查询中尽量不使用select*,用哪个字段查哪个字段;少用子查询,可以用表连接代替;少用模糊查询;数据表创建索引;对经常用到的数据生成缓存。
15.mvc哪三层,有什么优点
M:模型层,V:视图层,C:控制器
由控制器调用模型处理数据,然后将数据映射到视图层进行显示,优点是可以实现代码重用性,避免代码冗余,M和V实现代码分离,从而使同一个程序可以使用不同的表现形式。
16.print,echo,print_r有什么区别
echo和print都可输出,echo不是函数,没有返回值,而print是一个函数,有返回值,如果只是输出,echo会更快,而print_r通常用于打印变量相关的信息,一般在调试的时候用。
print是打印字符串
prin_r打印复合类型,数组或者对象
php面试题常见面试题相关推荐
- Tomcat面试题+http面试题+Nginx面试题+常见面试题
Tomcat面试题 1.Tomcat的缺省端口是多少?怎么修改? 答:缺省端口是8080,若要修改,可以进入Tomcat的安装目录下找到conf目录下的server.xml文件,找到该文件中的Conn ...
- 数分面试题 - 常见面试题1
目录标题 1.特征工程,选择哪些特征作为预测变量 2.什么时候选择RFM模型构建特征变量 3.显著性水平.置信区间.假设检验 4.机器学习的随机森林 Random Forest 和 xgboost 有 ...
- mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题
1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...
- java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)
数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...
- Spring常见面试题及答案汇总1000道(春招+秋招+社招)
Spring面试题以及答案整理[最新版]Spring高级面试题大全(2021版),发现网上很多Spring面试题都没有答案,所以花了很长时间搜集,本套Spring面试题大全,汇总了大量经典的Sprin ...
- Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)
Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...
- MySQL常见面试题及答案汇总1000道(春招+秋招+社招)
MySQL面试题以及答案整理[最新版]MySQL高级面试题大全(2021版),发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典的MySQL程序员面 ...
- Jvm常见面试题及答案汇总1000道(春招+秋招+社招)
Jvm面试题以及答案整理[最新版]Jvm高级面试题大全(2021版),发现网上很多Jvm面试题都没有答案,所以花了很长时间搜集,本套Jvm面试题大全,汇总了大量经典的Jvm程序员面试题以及答案,包含J ...
- Dubbo常见面试题及答案汇总1000道(春招+秋招+社招)
Dubbo面试题以及答案整理[最新版]Dubbo高级面试题大全(2021版),发现网上很多Dubbo面试题都没有答案,所以花了很长时间搜集,本套Dubbo面试题大全,汇总了大量经典的Dubbo程序员面 ...
最新文章
- Hdu 6534 Chika and Friendly Pairs 莫队算法+树状数组
- 23.IntelliJ IDEA 常用设置-1
- 如何让Excel里显示的数字避免通过科学计数法来显示
- mvc调用mysql存储过程_使用.NET MVC +EF调用oracle的存储过程
- nginx file not found 错误处理小记
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第31篇]Game Hopping证明
- 狂野飙车9手游服务器维护,狂野飙车9_狂野飙车9公益服_变态版狂野飙车9_狂野飙车9官网_9917游戏...
- Dubbo与Spring Cloud
- html基础-table标签
- Java编程:获取用户是否输入回车符
- myeclipse 快捷键(转载)
- 精选 | 2018年1月R新包推荐
- mocha 的基本介绍expect风格断言库的基本语法
- 微软Win11 商店各个应用可单独下载
- 大数据概述(尚硅谷)
- VMware虚拟机中 启动Windows XP系统黑屏 的解决
- 神州数码云平台网络环境
- Android Display ID 对应关系
- wps表格打印怎么铺满a4纸
- windows环境下 ipfs的搭建与使用
热门文章
- 高分子PEG:mPEG-Maleimide MW:3400,甲氧基-聚乙二醇—马来酰亚胺,常用作聚合物试剂
- [CVPR2018]Nonlinear 3D Face Morphable Model
- 华钜同创:亚马逊开店提高产品复购率的七大方法
- UE4官方课程笔记(1)——游戏设计师的蓝图与游戏玩法
- c语言冒泡排序数组指针,c语言冒泡排序,指针,数组
- 接口数量属于计算机硬件指标吗,计算机硬件指标.doc
- 【超级干huo】链表和数组深度分析-(二分查找)
- invokeAny和invokeAll的使用思路
- R语言机器学习mlr3:简介
- 办事大厅导航系统—业务智能导办—智慧政务建设