-
按值传递与按址传递的区别
按值传递是实参和形参分别占用两个不同的存储空间. 函数内的变量改变不会影响函数外的值, 而按址传递是实参和形参共用同一存储空间, 函数内的变量的改变会影响函数外的值, 另外按址传参时, 传入的参数不能为非变量. -
上传图片时如何筛出非图片
查看type的值, 看 ‘/’ 之前的字符串是否为image, 若不是, 如text, application则是非图片 -
服务器中的session的存放位置
服务器中的session数据默认以文件的形式存储在目录下, 目录路径可以使用phpinfo()函数查看, 而且文件名一般以为’sess_'拼接上sessionid的值. -
php中合并数组的函数有什么?
array_merge: 参数为多个数组. 对于索引数组, 键名重复不会覆盖, 关联数组会.
array_diff: 计算数组差集 -
对于存在redis中的数据, 如何使其持久化以备份数据
可以存进redis的同时把数据存进数据库或者文件中, 也可以定期时redis数据磁盘持久化. -
get传参和post传参的区别?
1).get通过url传参. post通过request body传参
2). get会产生1个数据包, 发送请求时会将header和data同时发送给服务器,返回200的服务器码; 而post会产生2个数据包, 发送请求时会先发送header, 服务器返回100,再发送data,服务器返回200.
3).get请求会缓存在浏览器, post默认不会
4).get请求的url会保存在历史记录, 而post不会
5).get请求中有非ascll值会先转码, 再发送请求. 而如果post中有非ascll, 不会转码, 因为post参数通过request body传递参数, 可以传递ascll值 -
innodb引擎和mysim引擎设计表的区别?
1). innodb支持事务, 而mysim不支持事务
2). mysim不支持行锁, 当写表时会锁住整个表, innodb支持行锁, 从一定程度上降低死锁的概率.
3)innpdb支持外键
4). innodb没有保存记录总数, 而mysim有保存, 需要时直接读取即可
5).清空表时, innodb会逐行清除,效率低, mysim会重新建表 -
字符串追加到数组的末尾
array_push -
查看某字符串中是否包含指定的字符串
1). strpos()
2)strstr()
3)expole()
4)substr_count() -
MySQL的int类型可以存储的最大字节数?
int(M), 无论M是几, int类型存储的最大字节数仍是4个字节, 若加上限制条件unsigned, 取值范围为0~4294967295, 若不加unsigned, 取值范围为-2147483648~2147483647, 与M也无关, M只是存储数值得默认宽度, 例如int(3), 存储的值为22, 则实际存储的022. -
建立联合索引 index(a, b, c)
where a=1 and b=2
where b=2 and c=3
where a=2 or b=3
请问3中语句分别用到设么索引?
都用到了联合索引. -
session和cookie的区别, cookie关闭, 是否能使用session
1)session将数据存在服务器, cookie存在浏览器
2)session就是为了客户端同服务器对话而产生, 所以登录状态一般存在session
3)cookie里存储了sessionId, 而sessionId通过请求头发送给服务器, 所以session依赖cookie,但是session也可以通过url传递 -
apache和nginx的区别.nginx的fast_cgi的大概意思
区别: apache是同步多进程的, 而nginx是异步多线程, apache是一个连接对应一个进程, nainx是多个连接对应一个进程, 当nginx接受一个请求时, 首先由cgi读取php配置文件,并初始化进程进而处理php请求, 这样如果同意时间大量请求, cgi就会非诚忙, 初始化进程->销毁进程 , 一致重复, 这样就有了fast-cgi, 他会生成多个进程, 节约了服务器开销
区别: apache发展时间比nginx长, 比nginx性能稳定, 支持的公共能也多,但是nginx更适合处理高并发 -
浏览器访问的错误码
200: 服务器成功处理请求
202服务器接收请求成功, 但尚未处理
301:永久重定向
302:暂时重定向
403: 没有权限访问
404找不到页面
500:服务器内部错误 -
OOP的优点
封装,继承,多态 -
http和tcp的区别?
-
tcp建立连接的3次握手和4次挥手?
3次握手
1).客户端A发送SYN包发起新连接,
2).服务器端B发送SYN包和ACK包确认连接请求并发起一个新连接
3).客户端A确认连接请求, 发送SYN包
4次挥手
1)客户端A发送Fin包终端连接
2)服务器B返回确认包ACK包中断A到B的连接
3)服务器B发起FIn包中断请求
4)客户端A返回ACK确认包 -
redis的数据类型(redis的库有哪些)
1). 字符串
2).哈希表
3).列表
4).有序集合
5).无序集合 -
redis有1亿个数据, 如何查找所有字符串首尾为指定字符的key值
使用 keys 字符串* -
消息中间件
PHP面试常见问答题
最新推荐文章于 2023-12-06 19:44:35 发布