PHP面试问答题汇总(二)

接上文:PHP面试问答题汇总(一)

  1. PHP是一种嵌入式脚本语言,基于Zend引擎。PHP最常被用来开发动态的HTML内容,此外,它同样还可被用来生成XML(以及其他)文档
  2. 下列函数的含义

$_SERVER[‘PHP_SELF’] 获取文件名
$_SERVER[‘HTTP_USER_AGENT’] 获取浏览器属性
$_SERVER[‘SERVER_NAME’] 获取服务器名称

  1. 服务器共享session的方式

利用NFS共享session数据
基于数据库的session共享
基于cookie的session共享
使用类似BIG-IP的负载设备来实现资源共享

  1. php-fpm运行的网站需要修改时区,需要进行如下操作:

修改php.ini的date.timezone,重启php-fpm

  1. 解释型语言的特性

非独立,效率低

  1. 读取文件全部内容的是

file() 整个文件读入一个数组中
file_get_contents()走了php的内存。但是在读取小文本内容到字符串变量时,这个函数最适合使用,简单,更快。
readfile()优势是能够一次性读取大文件;不需要PHP预读到内存,下载速度更快,直接把文件的处理交由服务器。缺点就是不能控制负载。所以它是没有内存限制的,如果遇到报内存错误,先调用 ob_end_flush()之类的函数关闭缓冲区。

  1. PHP面向对象中的一个通用方法__toString()方法,描述正确的是

此方法是在直接输出对象引用时自动调用的方法。
如果对象中没有定义此方法时,直接使用echo输出此对象,会报如下错误:Catchable fatal error: Object of class A could not be converted to string.
此方法中一定要有一个字符串作为返回值。

  1. 避免SQL注入的函数

mysql_real_escape_string()

  1. 将$1和$2合并到一个String

$1.$2
implode(’ ’ ,array($s1,$s2))
“{$s1}{$s2}”

  1. PHP的存储目录中,/tmp是长传文件的默认存储目录,更改这个目录需要编辑哪个文件的哪个属性值?

php.ini文件的upload_tmp_dir属性

  1. final修饰符描述错误的是

使用final标识的类不能被继承
在类中使用final标识的成员方法,在子类不能被覆盖
不能使用final标识成员属性

  1. 面向对象的

get_class() 实例化对象所属类名字
get_class_vars() 返回由类的默认属性组成的数组
get_class_methods() 返回由类的方法名组成的数组

  1. PHP的错误类型有哪些?

1.解析错误或语法错误
2.致命错误 识别未声明的函数错误类型
3.警告错误 丢失文件
4.注意错误 该程序包含错误,但允许执行脚本

PHP错误类型有哪些
34. 抽象类和接口的区别

任何一个类,如果它里面至少有一个类,被声明为抽象,那这个类就必须被声明为抽象
抽象类不能被实例化
必须在子类中将抽象类中的方法全部实现
接口使用关键字(interface),指定某个类必须实现哪些方法
接口不允许实例化,但可以被继承

PHP面向对象(抽象类与抽象方法、接口的实现)
35. PHP的垃圾回收机制

垃圾回收机制是一种动态存储分配方案,会自动释放不再需要的已分配的内存块
PHP5.3开始,使用新的垃圾回收机制。避免内存泄漏
每个PHP变量存在一个叫"zval"的变量容器中。"zavl"变量容器包含变量的类型和值,还包含两个字节的额外信息(is_ref和refcount)
is_ref是布尔值,能把普通变量和引用变量区分,zavl变量容器里还有一个计数机制来优化内存
refount是用来表示指向这个容器的变量的个数
垃圾回收机制默认是打开的

PHP进阶学习之垃圾回收机制详解
36. 介绍JWT(JSON Web Token)

JWT是基于JSON的开放标准。一般用来在身份提供者和服务者之间传递被认证的用户信息
JWT由3部分组成(header、payload、signature)
header由两部分组成声明的类型(JWT)和加密算法(HS256)
payload是存放有效信息
signature是签证信息,由header和payload、secret组成
JWT常用的认证方式有:
1)HTTPBAasicAuth
2)cookie
3)Oauth 第三方登录
4)Token

读懂JWT的使用,你就会用PHP
php 后端实现JWT认证方法
JWT之:常见的认证机制
php 后端实现JWT认证方法示例
php JWT在web端的使用方法
37. PHP的超全局变量和系统常量

超全局变量
$_GET 以get方式提交变量数组
$_POST以post方式提交变量数组
$_COOKIE获取设置网站的cookie标识
$_SESSION获取用户的唯一标识
$_FILES文件上传
$_SERVER 获取服务器信息
系统常量
_FILE_ 当前脚本的绝对路径及文件名称
_LINE_ 存储常量所在行号

PHP 超级全局变量

PHP 超全局变量详解
php常用的超全局变量
PHP超全局变量和系统常量
38.PHP的魔术方法

__construct() 构造函数。第一个被对象自动调用的方法,同一类中只能声明一个构造方法
__destruct() 析构函数 对象销毁之前最后一个被对象自动调用的方法,用于清理使用中的资源。只能有一个析构函数
__tostring() 当对象被当做字符串使用,这个方法会自动调用
__call() 当对象访问不存在的方法时,这个方法会自动调用
__callstatic() 当对象访问不存在的静态方法时,这个方法会自动调用
__clone() 克隆
__set() 给不存在的属性赋值,这个方法会调用,有至少2个参数
__get() 读取不存在的属性自动调用,有至少一个参数

PHP常用的魔术方法应用
39. PHP常用数组

array_column() 从二维数组中取出指定的某一列
array_key_exists() 检测数组中是否存在指定的键名
array_merge() 把一个或多个数组合并成为一个数组
array_pop() 删除数组中的最后一个元素
array_shift() 删除数组中的第一个元素,并返回删除的元素
array_push() 向数组尾部添加一个或多个元素,返回数组长度
array_sum() 返回数组中所有值的和
array_value() 返回数组中所有的值

PHP Array
40. innodb和myisam的区别

MyISAM不支持事务;不支持行锁;不支持外键约束;不支持count;支持全文索引;支持表锁
InnoDB支持事务;支持行锁;支持外键约束;支持count;不支持全文索引

接下文:PHP面试问答题汇总(三)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值