您的位置:首页 > 职场人生

php程序员面试必知基础知识

2018-02-09 11:21 344 查看
毕业后一直待到现在的公司,一个地方待久了,容易进入舒适区,看不到自己的不足,斗志也会被消磨。所以,最近闲来无事,趁着晚上的工夫出去面试了几家公司。还别说,事实表明,我对php的一些基础知识理解不深入,掌握不牢靠,也可以说是在开发过程中没有意识到去掌握这些知识。

在这里,我就把自己整理的认为一些比较重要的问题分享到这里,希望对各位同学有帮助。如果有新货的话,我会不定时更新的吆~~~

php

1.服务器信息获取

uri:$_SERVER['REQUEST_URI']
ip:$_SERVER['REMOTE_ADDR']


2.fast-cgi,cgi,php-fpm

cgi:通用网关接口,httpserver在接收到请求后,会把请求分发给php解释器,请求处理结束后,php解释器将数据返回给httpserver,由server将结果返回给用户。其中cgi规定了传递的数据和格式。普通的cgi在请求过来时,会重新fork一个新进程,先根据php.ini文件加载环境,处理完成后结束运行。

fast-cgi:起一个主进程,预先解析配置文件,加载执行环境环境,然后fork多个进程。请求过来后分发给worker进程,可根据情况起不同数量的worker等待。

php-fpm:实现了fast-cgi协议的程序,可以对fast-cgi进程进行管理

3.php数组实现,哈希表

通过hash表实现,hash值冲突解决方案是链表

4.php的规范

psr-0 自动加载

psr-1 基础编码标准

psr-2 代码风格

psr-3 日志接口

psr-4 psr-0自动加载补充

5.smarty模板引擎为例,如何渲染模板

把模板文件中的自定义标签替换为php代码,编译成编译文件

第二次请求时,如果原文件没有修改(通过判断更改时间的变化),直接访问编译文件。

可以启用缓存,启用缓存后,判断缓存是否过期,如果过期,重新编译。

filectime 文件inode修改日期

filemtime 文件上次修改日期

fileatime 上次访问日期

6.restful

GET 获取数据

POST 修改数据

PUT 上传数据

DELETE 删除数据

OPTIONS特定资源支持的请求方法

HEAD GET类似,不用返回响应体

TRACE 测试

二 mysql

1.mysql的sql语句优化

优化嵌套查询

优化使用索引:

or语句的每个条件都加索引

使用use index或force index,指定使用某个索引

子查询和join的区别

子查询需要把内层查询的结果作为外层查询的条件,它会先把内层查询的结果保存到临时表,查询结束后销毁临时表。比join查询多了临时表的创建和删除操作。

2.mysql索引

聚簇索引:数据和索引在同一个文件,innodb

非聚簇索引:数据和索引在不同的文件,myisam,多了一次对数据读取的i/o,效率较低。

主键使用b-tree索引

b-tree和hash区别

索引文件较大,一般不加载到内存中,而是存储到磁盘上。而磁盘的i/o会显著影响速度,所以,查询尽量减少磁盘的i/o操作。

b-tree:对于排序,区间查询友好。

hash的问题:1)只能应用到= != in操作中 2)对于排序操作无法优化 3)在多个值产生同一个hash值时,因为要多次i/o操作,查询效率会变低。

三 前端

1.html

2.css

3.javascript选择器

四 nginx服务器

1.css js font等资源文件的加载

2.负载均衡实现

proxy pass http://serverhost/ 轮询
upstream serverhost {
server 1111;
server 2222;
}

按权重
upstream serverhost{
server 1111 weight 30;
server 2222 weight 70;
}

ip hash:可解决session问题
upstream serverhost{
ip_hash;
server 1111;
server 2222;
}

fair:第3方mod
upstream serverhost{
server 1111;
server 2222;
fair;
}

url_hash:第3方mod
upstream serverhost{
server 1111;
server 2222;
hash $request_uri;
hash_method crc32;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 面试