网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > php语言

高级php程序员面试题

栏目: php语言 / 发布于: / 人气:1.6W

php程序员就是从事开发计算机语言的人,下面是本站小编精心为大家整理的关于高级php程序员面试题,希望对大家有帮助,更多内容请关注应届毕业生网!

高级php程序员面试题

  一、mysql相关知识

 1、 mysql优化方式

MYSQL 优化常用方法

mysql 性能优化方案

2、如何分库分表

参考:

_

3、 Mysql+如何做双机热备和负载均衡

如何做双机热备和负载均衡

 4、数据表类型有哪些

MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等

MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。

InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。

myisam和Innodb引擎的主要特点

MySQL的存储引擎MyISAM与InnoDB有什么区别?

 5、防sql注入方法

mysql_escape_string(strip_tags($arr["$val"]));

/**

* 函数名称:post_check()

* 函数作用:对提交的编辑内容进行处理

* 参  数:$post: 要提交的内容

* 返 回 值:$post: 返回过滤后的内容

*/

function post_check($post){

if(!get_magic_quotes_gpc()){// 判断magic_quotes_gpc是否为打开

$post = addslashes($post);// 进行magic_quotes_gpc没有打开的情况对提交数据的过滤

}

$post = str_replace("_","_",$post);// 把 '_'过滤掉

$post = str_replace("%","%",$post);// 把 '%'过滤掉

$post = nl2br($post);// 回车转换

$post =htmlspecialchars($post);// html标记转换

return $post;

}

 6、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题

  7、索引应用

什么情况下考虑索引

什么情况不适合索引

一个语句是否用到索引如何判断

经常发生的用不到索引的场景:

like '%.....'

数据类型隐式转换

or 关键字加其它条件约束

全文索引:

只能用于MYIsAM表,在CHAR,VARCHAR,TEXT类型的列上创建。

 8、mysql对于大表(千万级),要怎么优化呢?

参考

 9、mysql的慢查询问题

其实通过慢查询日志来分析是一种比较简单的方式,如果不想看日志,可以借助工具来完成,

如mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter等,感觉自己来分析一个需要丰富的经验,一个浪费时间。

10、关于用户登录状态存session,cookie还是数据库或者memcache的优劣

关于用户登录状态存session%2Ccookie还是数据库或者memcache的`优劣

 11、事务应用极端情况处理

  12、sql语言分4大类请列举

DDL--CREATE,DROP,ALTER

DML--INSERT,UPDATE,DELETE

DQL-SELECT

DCL--GRANT,REVOKE,COMMIT,ROLLBACK

  二、php基础

session的跨域共享 php连接mysql数据库的几种方式及区别

mysql:面向过程

mysqli:面向对象

pdo:可移植性高

请参考:php基础系列:PHP连接MySQL数据库用到的三种API

  三、php高级

长连接和短连接的使用socket的使用支付安全问题

面向对象

三大特性:封装、继承、多态(方法重写)。

抽象类:abstract,至少有一个方法是抽象方法,不能被实例化,为子类定义公共接口。

接口:interface,解决php的单继承问题,所有方法都是public访问权限的抽象方法,不能声明变量只能声明常量。

继承一个类的同时实现多个接口

class A extends B implements 接口1,接口2...,接口n(){

//实现所有接口中的方法

}lamp 和 lnmp 网站架构性能差异的原因分析解释性语言和编译性语言的性能分析,举例。

  四、正则

email,html,js等匹配

  五、开发基础

进程和线程定义,区别和联系。

进程的状态:运行run、就绪ready、等待wait六、Nosql数据库

memcached、redis、mongodb的区别联系

3个场景完全不同的东西。ached:单一键值对内存缓存的,做对象缓存无可替代的分布式缓存;s:是算法和数据结构的集合,快速的数据结构操作是他最大的特点,支持数据持久化;odb是bson结构、介于rdb和nosql之间的,更松散更灵活的,但是不支持事务,只用作非重要数据存储。

参考 MongoDB 或者 redis 可以替代 memcached 吗?

 七、常用linux命令

比如软链接

 八、架构相关

项目上线前的压力测试,单台服务器支持的并发数,pv数。

服务器资源合理分配问题 CPU:Apache

MySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然会CPU占用过高。

内存:内存库,数据库软件

硬盘:文件

web2.0架构选择 MongoDB+redis 或者 MySQL+Memcached 比较好的组合,逻辑简单的就用NOSQL

当前流行主要网站架构

LAMP、LNMP、LLMP

现在网络上还有一种LNAMP构架,也就是综合了nginx和Apache的优点,使用Apache负载PHP,nginx负责解析其他Web请求,使用nginx的rewrite模块,但是Apache端口不对外开放,Apache的许多模块都可以不加载减少资源。


更多php面试题推荐:

1.2017年PHP面试题与答案

2.高级php程序员面试题

3.2017年PHP面试之编程题及答案

4.一套PHP面试题2017

5.十个值得深思的PHP面试问题

面试之php自带的几个防止sql注入的函数

7.2017年PHP面试题之HTTP状态码出现问题

8.2017年PHP工程师面试题集

9.2017年PHP面试编程题

10.英文题目的PHP面试题及答案