360大牛解读PHP面试-php基础知识考点

整理自慕课网360大牛全面解读PHP面试 ,购买链接:https://coding.imooc.com/class/133.html

1.php 引用变量
真题回顾
什么是引用变量?在PHP中用什么符号定义引用变量
考点分析
php引用变量的概念及定义方式;
php变量的工作原理。理解COW(copy on write 写时复制机制);

$a = range(0, 3);
xdebug_debug_zval('a');

$b = &$a;
xdebug_debug_zval('a');

$a = range(0, 3);
xdebug_debug_zval('a');
考点 unset:
// unset 只会取消引用,不会销毁空间
$a = 1;

$b = &$a;

unset($b);

echo $a. "\n"; //$a 还是1
考点 :对象本身就是引用传值

// 对象本身就是引用传递
class Person
{
public $name = "zhangsan";
}

$p1 = new Person;
xdebug_debug_zval('p1');

$p2 = $p1;
xdebug_debug_zval('p1');

$p2->name = "lisi";
xdebug_debug_zval('p1');
一网打尽
写出如下程序的输出结果

/**
* 写出如下程序的输出结果
* 程序运行时,每一次循环结束后变量$data的值是什么?请解释
* 程序执行完成后,变量$data的值是什么?请解释
*/

$data = https://www.it610.com/article/['a', 'b', 'c'];

foreach ($data as $key=>$val)
{
$val = &$data[$key];
var_dump($data);
}

var_dump($data);
2.常量及数据类型
真题回顾
PHP字符串的三种定义方式及各自区别?定义方式:单引号、双引号、heredoc,newdoc。heredoc 类似于双引号,$str=<< 考点分析
数据类型:三大类数据类型,标量:浮点、整型、字符串、布尔; 复合: 数组、特殊:
浮点不能用于相等运算;
布尔false的7种情况:0、0.0、‘’、‘0’、false、array()、null;
数组:超全局数组,$GLOBAL 、$_GET、 $_POST、 $REQUEST、$_SESSION、$_COOKIE、$_SERVER、$_FILE、$_ENV;
重点$_SERVER、
$_SERVER['SERVER_ADDR']:服务器端的ip地址 、
$_SERVER['SERVER_NAME']:服务器名称、
$_SERVER['REQUEST_TIME']:请求时间、
$_SERVER['HTTP_REFERER']:请求的上级页面
$_SERVER['REMOTE_ADDR']:客户端ip
$_SERVER['PATH_INFO']:

常量:定义 const define , const更快,是语言结构;define是函数;
预定义常量:__FILE__、__DIR__、__LINE__、__FUNCTION__ 、__CLASS__、__TRAIT__、__METHOD__、 __NAMESPACE__
一网打尽
用php写出显示客户端ip和服务端ip的代码;
__FILE__ 代表什么意思;
3.运算符
foo() 和@foo()有什么区别
真题回顾????
考点分析
错误抑制符号@的使用;
延伸考点:
运算符的优先级( PHP手册运算符优先级);比较运算符;递增递减运算符;逻辑运算符;
重点记忆:递增/递减 > ! > 算数运算符 > 大小比较 > (不)相等比较 > 引用 > 位运算(^)>位运算符(|)> 逻辑与 >逻辑或 >三目> 赋值 > and > xor > or
递增/递减不影响布尔值、递增NULL 值为1、递减null没有效果;
理解逻辑运算符 短路作用;

/**
* 下列程序中请写出打印输出的结果
*/
$a = 0;
$b = 0;

if ($a = 3 > 0 || $b = 3 > 0)
{
$a++;
$b++;
echo $a. "\n";
echo $b. "\n";
}


4.流程控制
真题回顾
php的遍历数组的三种方式以及各自区别,使用for循环;使用foreach;使用while、list()、each()组合循环;
for只能遍历索引数组,foreach可以遍历索引和关联数组。while、list() 和each()不会reset(); foreach会对数组reset操作;
考点分析
延伸考点:if.... elseif..... 、 swich....case:switch后面的控制表达式的类型只能是整型、浮点型、或者字符串;
switch 会生成跳转表、直接跳转到case;
一网打尽
php如何优化多个if elseif 语句的情况?
5.自定义函数及内部函数
真题回顾

/**
* 写出如下程序的输出结果:
*
*/

$count = 5;
function get_count()
{
static $count;
return $count++;
}

echo $count;
++$count;

echo get_count();
echo get_count();
考点分析
变量的作用域 和 静态变量;
函数的参数以及参数的引用传递;
函数的返回值以及引用返回;
外部文件的导入;
系统内置函数;时间日期函数、ip处理函数,打印处理函数,序列化 反序列化函数、字符串处理函数,数组处理函数,
一网打尽
6.正则表达式
真题回顾
手机号正则表达式的编写
考点分析
正则表达式的作用:分割、查找、匹配、替换字符串
分隔符:正斜线(/),hash符号(#),取反符号(~);
通用原子:\d(十进制0~9), \D(除了0~9), \w(数组字母下划线),\W(除了数字字母下划线) ,\s(空白符), \S(除了空白符);
元字符:
元字符
.除了换行以外的任一字符
*匹配前面的内容出现0次1次或者多次;
?0次或者一次
^必须以他开头
$必须以他结尾
+出现一次或者多次
{n}恰巧出现n次
{n,}大于等于n次
{n,m}大于等于n小于等于m
[ ]表示一个集合,配置集合中的一个元素
()一个整体
[^]除了
|或者
[-]:一个范围例如[0-9]
模式修正符:
i:不区分大小写,
m:将字符串通过分隔符分割,就是将字符串中的每一行分别进行匹配
e:,s,U,x,A,D,u
延伸: 后向引用 、贪婪模式
一网打尽
7.文件及目录处理
真题回顾
不断在hello.txt头部写入一行hello word 字符串,要求代码完整;


// 打开文件
// 将文件的内容读取出来,在开头加入Hello World
// 将拼接好的字符串写回到文件当中
// Hello 7891234567890
//
$file = './hello.txt';
$handle = fopen($file, 'r');
$content = fread($handle, filesize($file));
$content = 'Hello World'. $content;
fclose($handle);
$handle = fopen($file, 'w');
fwrite($handle, $content);
fclose($handle);
考点分析
文件的读取/写入;
fopen()函数,打开模式:r/r+,w/w+, a/a+,x/x+,b,t
目录操作函数;
一网打尽
通过php函数对目录进行遍历;

$dir = './test';

// 打开目录
// 读取目录当中的文件
// 如果文件类型是目录,继续打开目录
// 读取子目录的文件
// 如果文件类型是文件,输出文件名称
// 关闭目录
//

function loopDir($dir)
{
$handle = opendir($dir);

while(false!==($file = readdir($handle)))
{
if ($file != '.' && $file != '..')
{
echo $file. "\n";
if (filetype($dir. '/'. $file) == 'dir')
{
loopDir($dir. '/'. $file);
}
}
}
}

loopDir($dir);
8会话控制
真题回顾
简述cookie 和session的区别以及各自的工作机制,存储位置等,简述cookie的优缺点;
考点分析
php会话控制结束;
为什么要使用会话控制技术;
一网打尽
session的存储方式,如何进行遍历;
9.面向对象
面试真题
请写出php类权限控制修饰符; public protected private
考点分析
面向对象的封装,继承和多态;单一继承,方法重写,抽象类的定义,接口的定义
魔术方法:_
设计模式:工厂模式 单例模式 单例模式 注册树模式 适配器模式观察者模式 策略模式;
一网打尽
请写出php的构造函数和析构函数;

10.网络协议考点
真题回顾
http 1.1 中 状态码200, 301 304 403 404 500的含义;

考点分析
osi七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;
http的工作原理及特点;基于b/s模式
http协议常见请求头/响应头 和请求方法;content-type、accept、origin、...
https协议的工作原理;get post head options put delete trace
get post区别,
常见协议含义及端口;

【360大牛解读PHP面试-php基础知识考点】一网打尽

    推荐阅读