2020PHP面试题收集整理|PHP面试

最近在找工作,本专题持续更新中,包含大量函数注释(我是小白,所以自己查了函数用法copy上来),置顶使用!

0x01 中文字符串截取无乱码的方法

<?php
 // 1. 通过内置函数
 mb_substr();
echo mb_substr("菜鸟教程", 0, 2);
// 输出:菜鸟

 // 2. 自定义方法
 function selfSubstr($string, $start, $length = null)
 {
  return implode('', array_slice(
      preg_split('//u', $string, -1, PREG_SPLIT_NO_EMPTY), $start, $length)
  );
 }

0.1 PHP | implode() Function

类似于python中的join(),可以将数组拼接成字符串

$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr);
// 输出
// Hello World Beautiful Day!

0.2 PHP | preg_split() Function

该函数通过正则匹配模式切割字符串为数组,语法如下

array preg_split( $pattern, $subject, $limit, $flag )

示例如下

<?php 

// Input string 
$inputstrVal = 'Geeksarticle'; 

// Implementaion of preg_split() function 
$result = preg_split('//', $inputstrVal , -1, PREG_SPLIT_NO_EMPTY); 

// Display result 
print_r($result); 
?> 

0x02 PHP 语言的一大优势是跨平台,什么是跨平台?

PHP 的运行环境最优搭配为 Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如 windows、Linux 等)上配置,不受操作系统的限制,所以叫跨平台

0x03 WEB 开发中数据提交方式有几种?有什么区别?百度使用哪种方式?

Get 与 post 两种方式
区别:
(1)url 可见性:get 方式 url 参数可见,post 不可见
(2)可缓存性:get 方式是可以缓存的,post 方式不可以缓存。
(3)传输数据大小:get 一般传输数据大小不超过 2k-4k(根据浏览器不同,限制不一样,但相差不大);post 请求传输数据的大小根据 php.ini 配置文件设定,也可以无限大。
(4)数据传输上:get 方式通过 url 地址栏拼接参数进行传输,post 方式通过 body 体进行传输。
建议:
1、get 式安全性较 Post 式要差些包含机密信息建议用 Post 数据提交式;
2、做数据查询建议用 Get 式;做数据添加、修改或删除建议用 Post 方式;
3 丶百度使用的 get 方式,因为可以从它的 URL 中看出

————————————————
原文作者:NiZerin
转自链接:https://learnku.com/articles/24140
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

web完整的请求方式表格

序号方法描述
1get 请求指定的页面信息,并返回实体主体。
2HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE 请求服务器删除指定的页面。
6CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7 OPTIONS 允许客户端查看服务器的性能。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。
9 PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

0x04 安全对一套程序来说至关重要,请说说在开发中应该注意哪些安全机制?

(1)使用验证码防止注册机灌水。
(2)使用预处理,绑定参数,参数过滤转义 防止 sql 注入
(3)使用 token 防止远程提交,使用 token 验证登录状态。

0x05 SESSION 与 COOKIE 的区别?

(1)存储位置:session 存储于服务器,cookie 存储于浏览器
(2)安全性:session 安全性比 cookie 高
(3)session 为‘会话服务’,在使用时需要开启服务,cookie 不需要开启,可以直接用

0x06 PHP 处理数组的常用函数?

(1)array () 创建数组
(2)in_array () 判断元素是否在数组中
(3)count () 返回数组中元素的数目
(4)array_merge () 将多个数组合并成一个数组
(5)array_diff () 比较两个或两个以上数组的差异
(6)array_intersect () 获取两个或两个数组以上的交集
(7)array_keys () 获取数组的 key 列表
(8)array_values () 获取数组的值列表
(9)array_unique () 删除数组中的重复值
(10)array_push () 将一个或多个元素插入数组的末尾(入栈)
(11)array_pop () 弹出并返回 array 数组的最后一个单元(出栈)
(12)array_walk () 使用用户自定义函数对数组中的每个元素做回调处理

0x07 PHP 处理字符串的常用函数?

(1)trim () 移除字符串两侧的空白字符和其他字符;
(2)strlen () 获取字符串的长度
(3)mb_strlen () 获取字符串长度(可指定字符编码,对中文字符串计算长度)
(4)substr () 返回字符串的一部分;
(5)str_replace () 子字符串替换
(6)str_repeat () 重复一个字符串
(7)is_string () 检测变量是否是字符串;
(8)str_shuffle () 随机打乱一个字符串
(9)sprintf () 返回根据格式化字符串生成的字符串(通常用于获取分表后的数据表名)
(10)strstr () 查找字符串的首次出现
(11)addslashes 使用反斜线引用字符串

0x08 PHP的全称是什么?

Hypertext Preprocessor(超文本预处理器)

0x09 如何从命令行界面运行交互式 PHP Shell

php -a

0x10 正确开始和结束 PHP 代码块的最常见的两种方式是什么?

<?php [   ---  PHP code---- ] ?> and <? [---  PHP code  ---] ?>

0x11 PHP 是否支持多重继承

PHP 只支持单继承。PHP 的类使用关键字 extends 继承另一个类

0x12 使用 final 修饰的类和方法代表什么意思?

final 是在 PHP5 版本引入的,它修饰的类不允许被继承,它修饰的方法不允许被重写。

0x13  PHP 中如何比较两个对象?

在 PHP 中,我们可以使用运算符 == 来比较两个对象是否为同一个类的实例,并且拥有相同的属性和属性值。
还可以是使用运算符 === 来比较两个对象是否引用了同一类的同一实例

0x14 include() 和 require() 在执行失败的情况下有什么不同?

include() 将会产生一个警告,不影响后续程序的执行。require() 将会产生一个致命错误,后续程序停止执行。

0x15  require () 和 require_once () 之间的主要区别是?

require () 和 require_once () 执行同样的任务,除了第二个函数在执行前检查 PHP 脚本是否已经包含

0x16 如何使用 PHP 脚本 连接 MySQL 数据库?

为了连接到 MySQL 数据库,必须使用 mysql_connect () 函数:

<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->

0x17 如何在 PHP 脚本中定义常量?

define ("ACONSTANT", 123);

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐