作为世界上最好的语言,PHP使用的广泛性不用多说。现在越来越多的互联网公司都在使用PHP, 所以今天就来聊一聊在PHP的面试和笔试中经常会问的一些题目。
另之前写的面试相关的文章也一并推荐给大家,希望能有所帮助,助大家都找到好工作。
函数内部 static 和 global 关键字的作用
static 是静态变量,在局部函数中存在且只初始化一次,使用过后再次使用会使用上次执行的结果; 作为计数,程序内部缓存,单例模式中都有用到。
global 关键字,引用 全局变量 ,wordpress中大量用到,如面向过程开发。
static 静态方法 ,是类的成员方法,但不需要实例化类可直接使用
$GLOBAL 在函数内使用具有全局 作用域 的变量,如$GLOBAL[‘a’]
子类重写父类的 protected 方法有什么限制?或者说有什么要遵守的规则?
用例子说明,以 Laravel 框架中的控制器作为说明
①final修饰的类方法不可被子类重写
②PHP是否重写父类方法只会根据方法名是否一致判断(5.3以后重写父类方法参数个数必须一致)
③重写时访问级别只可以等于或者宽松于父类 不可提升访问级别
PHP文件末尾是否应该加 ?> 结束符号,为什么?
主要防止 include,require 引用文件,把文件末尾可能的回车和空格等字符引用进来,还有一些函数必须在没有任何输出之前调用,就会造成不是期望的结果。PHP文件的编码不包含BOM的UTF8. 这也是PSR-2中的规范:纯PHP代码文件必须省略最后的 ?> 结束标签。
谈一谈 PHP 开源框架 CI,ThinkPHP,Laravel 的优缺点及选型依据
CI非常轻量级,是一个简单的MVC框架,性能也很快。
ThinkPHP3.2国内使用比较多,优点是文档非常多,各种问题解决方案比较多,缺点是代码不够规范,理念落后。
Laravel 是一个现代化的PHP开发框架,代码优雅,使用 composer 方式扩展功能,社区活跃,缺点是比较重,比较适合做后台管理或者应用型WEB系统。
Memcache 和 Redis 的读写性能(qps)如何?两者优缺点?Redis 支持哪些数据类型?Redis 如何 持久化 ?
读写性能:
memcache更加快速,在读取性能上比 Redis 快,缺点是仅支持 字符串 。
Redis支持丰富的数据结构类型,字符串,散列(哈希),集合,有序集合,还支持订阅发布,地理位置等等。
实际运用中可以redis,memcache结合,memcache可作为 session 存储的方式,session都是KV类型键值对。
Redis 提供了多种不同级别的持久化方式:
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。
Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集, 因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整。
你甚至可以关闭持久化功能,让数据只在服务器运行时存在。
使用 PHP 下载网络图片,有哪些方法?
1.file_get_contents
2.readfile读取内容
3.fopen系列函数
4.curl
什么是 CGI ?什么是 FastCGI? php-fpm ,FastCGI, Nginx 之间是什么关系?
CGI,通用网关接口,用于 WEB服务器 和应用程序间的交互,定义输入输出规范,用户的请求通过WEB服务器转发给FastCGI进程,FastCGI进程再调用应用程序进行处理,如php解析器,应用程序的处理结果如html返回给FastCGI,FastCGI返回给Nginx 进行输出。假设这里WEB服务器是Nginx,应用程序是 PHP,而 php-fpm 是管理 FastCGI 的,这也就是 php-fpm,FastCGI,和 Nginx 之间的关系。
FastCGI 用来提高 cgi 程序性能,启动一个master,再启动多个 worker,不需要每次解析 php.ini. 而 php-fpm 实现了 FastCGI 协议,是 FastCGI 的进程管理器,支持平滑重启,可以启动的时候预先生成多个进程。
欢迎大家关注我,这里会不定期分享程序员工作日常,前沿技术动态,找工作面试技巧等,还有下方公众号,里面有更多机器学习,大数据相关的内容,入门或深入学习都合适,名称是狂奔的豆沙包。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~