小兔网

分享PHP常见的几道面试题:

1.完整的商城系统包含哪些模块?

商品、促销、订单、会员模块、权限模块、报表、广告。

2.PHP运行模式:CGI、FAST-CGI、CLI、ISAPI、APACHE模块。

不同的web服务器使用的是不同的运行模式来运行php。
Apache :apache
NGINX:FAST-CGI
IIS:ISAPI
CLI模式:不是在web服务器里运行的,而是在命令行里运行。
CGI模式:通用网关接口。

3.php线程安全与非线程安全是什么?区别?怎么选择?

如果程序以多线程的方式运行,多线程的特点,数据共享,使用锁机制的话就可以解决并发操作一共资源时出现的混乱问题,如果使用了锁机制就是线程安全,否则就是线程不安全。

Fast-cgi底层是多进程的,无论线程安不安全都没影响。结论:如果一个程序是以多线程的方式运行的,就要考虑线程安全,否则不要。

Linux下不用考虑线程安全,因为它是多进程的。
线程:多个线程之间变量可以共享。
进程:多个进程内存地址完全独立,互不影响。

4.php.ini safe_mode配置影响?

safe_mode就是安全模式,如果php以安全模式运行,那么有些函数就可能失效。默认就是关闭的。例如:unlink,mkdir,rmdir,mysql_*等等。

5.http协议无状态是什么意思?

每次发送数据或接收数据完成后,连接就断开了。不会保持状态。一直保持连接的就是有状态的,比如qq,网游等等。

6.php数据持久层 ?ORM单例模式?

php数据持久层就是指把数据写入到数据库或文件里,存储到设备里,持久化。

ORM(对象、关系、模型),就是model,一个模型就是映射到一张数据表。只要操作模型,就能操作数据表。很多mvc的框架就是orm模式。

单例模式就是说一个类只能创建一个对象。

7.strcasecmp-二进制安全比较字符串,什么是二进制安全?

二进制不安全:主要是指字符串,有些字符串转换成二进制后会有特殊的意义,不再是原来字符串的意义。
二进制安全:怎么转换都是安全的。

8.正则表达式POSIX和PCRE是什么?

是两种规范的正则表达式。对应php的两套函数。
PCRE:preg_xxx 现在都用这种,性能更好
POSIX:ereg_xxx

9.单点登录实现原理?

在一个程序中登陆成功后,通过ajax通知其它的项目,请求一个数据通知对方也登陆。如果发数据包?Js[ajax],php的三种数据采集发送。