面试题3
一些面试题
一些sql语句优化注意点
in 和 not in 也要慎用,因为 IN 会使系统无法使用索引,而只能直接搜索表中的数据 尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描
SELECT * FROM T1 WHERE F1/2=100 应改为: SELECT * FROM T1 WHERE F1=100*2
充分利用连接条件,在某种情况下,两个表之间可能不只一个的连接条件,这时在 WHERE 子 句中将 连接条件完整的写上,有可能大大ᨀ高查询速度。
- 对比查看两条 sql 语句的执行效果
可以收用 explain 进行查看。例如:explain select * from user_info;
什么是 OAuth 协议
OAuth(开放授权)是一个开放标准。
允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。
而这种授权无需将用户名和密码供给该第三方网站。
OAuth 允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该
令牌只能在特定的时间内访问特定的资源。
- OAuth 的原理和授权流程
1、用户访问第三方网站网站,想对用户存放在服务商的某些资源进行操作。
2、第三方网站向服务商请求一个临时令牌。
3、服务商验证第三方网站的身份后,授予一个临时令牌。
4、第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个
过程中将临时令牌和第三方网站的返回地址发送给服务商。
5、用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所相应的资
源。
6、授权成功后,服务商将用户导向第三方网站的返回地址。
7、第三方网站根据临时令牌从服务商那里获取访问令牌。
8、服务商根据令牌和用户的授权情况授予第三方网站访问令牌。
9、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源
面试题
基础
写出五种以上你使用过的 PHP 的扩展的名称
mysql、gd2、pdo、curl、mbstring、soap 等用 PHP 打印出前一天的时间格式是
date(‘Y-m-d H
s’, strtotime(‘-1 day’))
如何实现字符串翻转
可用内置函数 strrev。如果不准用 PHP 内置函数的就自己写:
参考 strrev2.php实现中文字串截取无乱码的方法。
a.可以用正则
b.用 mb_substr()PHP 中 error_reporting 这个函数有什么作用?
设定 php 脚本的错误报告级别
error_reporting(6143)的作用是设定 php 脚本的错误报告级别为”所有错误”。
ini_set(‘display_errors’, 1); //作用是在显示 PHP 脚本错误,相当于修改 php.ini 中的
error_reporting
定义和用法
error_reporting() 设置 PHP 的报错级别并返回当前级别。
语法
error_reporting(report_level)请解释下列 10 个 shell 命令的用途
top、ps、mv、find、df、cat、chmod、chgrp、grep、wc top:命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况, 类似于 Windows 的任务管理器。 ps:查看迕程 mv:移劢戒者更改文件 find:在子目录中搜索匹配的文件 df:linux 中 df 命令参数功能:检查文件系统的磁盘空间占用情冴。 cat:把一个戒多个文件内容显示刡标准输出 chmod:改变文件属性 chgrp:改变用户分组 grep:在文件内迕行搜索 wc:命令的功能为统计挃定文件中的字节数、字数、行数, 幵将统计结果显示输出。
简述队列, 堆栈的原理
都可以看做是一维数组来操作,队列先进先出,出列只能在列头,进列只能
在列尾,堆栈是后进先出,进栈和出栈都是从栈顶const 与static区别
const不会被modify,也不会被copy,static可以被modify,但不会被copy。const更像是个标识符,而static则像静态资源,可以被访问并修改
1、计算机相关专业大专及以上学历,具有良好、规范的编程习惯,熟悉MVC开发模式;
2、两年以上PHP后台开发经验,计算机基础扎实;
3、熟悉Laravel、Yii、ThinkPHP等主流开源框架的开发,能对相关的开源框架进行二次开发;
4、熟悉Ajax、Json、Javascript、Vue等前端技术,具备基于RESTful APL开发方式(前后端分离);
5、熟悉第三方支付,银联支付的接入开发以及ERP/CRM/电商系统开发的优先;
6、熟悉Mysql/Mongodb数据库的设计和优化,具备Memcached、Redis等Nospl使用经验者优先
7、熟悉Linux操作系统,熟悉Shell/Perl脚本编程及常用Unix管理命令优先
restful api面试
restful其实就是一套编写接口的协议,协议规定如何编写以及如何设置返回值、状态码等信息。
最显著的特点:
restful: 给用户一个url,根据method不同在后端做不同的处理,比如:post 创建数据、get获取数据、put和patch修改数据、delete删除数据。
no rest: 给调用者很多url,每个url代表一个功能,比如:add_user/delte_user/edit_user/
当然,还有协议其他的,比如:
版本,来控制让程序有多个版本共存的情况,版本可以放在 url、请求头(accept/自定义)、GET参数
状态码,200/300/400/500
url中尽量使用名词,restful也可以称为“面向资源编程”