IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php面试 基础知识整理 -> 正文阅读

[PHP知识库]php面试 基础知识整理

1、COW机制

Copy On Write 写时复制。变量在写入时才真正复制一份内存进行修改。

一种内存优化手段

详情见:http://www.nowamagic.net/librarys/veda/detail/1454

2、php 字符串得四种表达方式

使用单引号进行定义(速度较快)

使用双引号进行定义

heredoc(类似双引号)定界符

nowdoc(类似单引号)

3、不要用等号去比较浮点数

原因:因为计算机在计算浮点数时,会将浮点数转换为二进制数,难免会造成精度丢失。

4、输出结果为false的其中情况

整型为0时? ? ? ?0

浮点? ? ? 0.0

boolean? ? ? false

空字符串:? ? '? ? '

0字符串:? ? '0'

空数组:? ? ?[]

空类型? ? ? null

5、为null的三种情况

直接赋值变量为null、未定义的变量为null? 、使用函数unset()销毁的变量为null

6、运算符

PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。(错误抑制符,使用时,会忽略代码报错)


运算符优先级:递增/递减 > ! > 算术运算符 > 大小比较 > (不)相等比较 > 引用 > 位运算符( ^ ) > 位运算符( | ) > 逻辑与 > 逻辑或 > 三目 > 赋值 > and > xor > or
括号可以增加代码可读性
递增/递减运算符不影响布尔值
递增NULL值为1,递减NULL值没有效果
逻辑运算符短路效应:&& 或 || ,当左边部分符合条件是,右边部分将不会执行

7、遍历数组的三种方式

第一种? ? 使用for循环遍历? ? ?(只能遍历索引数组)

第二中? ? 使用foreach遍历数组? ? ?(可以遍历索引数组和关联数组)会reset()

第三种? ? 使用while、list()、each()组合循环? ?(可以遍历索引数组和关联数组)? ? ?不会reset()

注:reset()意思为是指针指向数组的第一个元素

8、include和required的区别

无论require位置如何,指定文件都将包含到出现require的脚本中。例如,即时require放在计算为假的if语句中,依然会包含指定文件


加载过程中,如果未找到文件则include会发出一条警告,而require会发出一个致命错误


require(include)/require_once(include_once)唯一区别是后者PHP会检查该文件是否已被包含过,如果是则不会再次包含

9、一些字符串函数

例:strlen? 计算字符串长度? ? ? ?sub_str()? ?截取字符串? ? ?strstr ()? ? 查找字符串中某个字符的位置

str_repeat()? ? 重复写入某个字符

注:其他详见php手册

10、数组函数

例 :count()? ? 计算数组长度? ? ? ?array_column()? ?获取数组的某一列,重新组成一个数组

? ? ? ?array_key_exits()? ?检测数组的某个键值是否存在? ? ? ?array_sum()? ?求数组所有元素的和

array_merge()? ?数组合并

注:其他详见php手册

11、可变函数

如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。

例:

?结果:

?12、正则表达式

作用:分割、查找、匹配、替换字符串


preg_match($pattern, $subject, $match):执行匹配正则表达式,匹配一次,返回pattern的匹配次数
preg_match_all($pattern, $subject, $match):执行一个全局正则表达式匹配,全局匹配,返回全局匹配的次数
preg_replace($pattern, $replacement, $subject):执行一个正则表达式的搜索和替换,返回全部结果
preg_filter($pattern, $replacement, $subject):执行一个正则表达式的搜索和替换,仅仅返回(可能经过转化)与目标匹配的结果
preg_grep($pattern, $subject):返回给定数组$subject中与$pattern相匹配的元素组成的数组
preg_split($pattern, $subject):类似explode()函数,通过一个正则表达式分隔字符串
preg_quote($str):转义正则表达式字符

13、会话控制

为什么要使用会话控制技术?因为HTTP协议是无状态的,为了保存用户信息,所以使用会话控制技术。


Cookie:存储在客户端,不占用服务器资源,但是不安全
Session:存储在服务端,占用服务器资源,比较安全


Session是基于Cookie的,用户禁用Cookie也可以使用Session,可以用session_name()、session_id()函数或SID常量传递SessionID (SID在用户开启Cookie时为空,关闭时有值)

14、文件函数

例:fopen()? 打开一个文件或url? ? ? ?(可用于检测网络是否连接)

fclose()? ? 关闭一个文件? ?

file_exists()? ? 检测一个文件是否存在? ?

file_get_contents()? ? ?将整个文件读入一个字符串

file_put_contents()? ? 将一个字符串写入文件

move_upload_file()? ? ?移动一个文件? ? ?(用于文件上传)? ??

注:其它详见https://www.php.net/manual/zh/ref.filesystem.php

15、HTTP协议

特点:HTTP协议是无状态、无连接的;基于B/S模式;通信开销小、简单快速、传输成本低;使用灵活、可使用超文本传输协议;节省传输时间。

工作原理

客户端发送请求给服务器,创建一个TCP连接,指定端口号,默认为80,连接到服务器,服务器监听浏览器请求,一旦监听到客户端请求,分析请求类型后,服务器会向客户端返回状态信息和数据内容。

HTTP请求方式

GET ? ? ?请求指定的页面信息,并返回实体主体
HEAD ? ? 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST ? ?向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。

POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT ? ? ?从客户端向服务器传送的数据取代指定的文档的内容。
DELETE ? ?请求服务器删除指定的页面
CONNECT ? HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS ? 允许客户端查看服务器的性能
TRACE ? ? 回显服务器收到的请求,主要用于测试或诊断。

HTTP状态码

  • 1**? ? ?信息,服务器收到请求,需要请求者继续执行操作
  • 2**????成功,操作被成功接收并处理
  • 3**????重定向,需要进一步的操作以完成请求
  • 4**????客户端错误,请求包含语法错误或无法完成请求
  • 5**????服务器错误,服务器在处理请求的过程中发生了错误

常见状态码

  • 200????请求成功
  • 301????资源(网页等)被永久转移到其它URL
  • 404????请求的资源(网页等)不存在
  • 500????内部服务器错误

16、OSI的七层模型

应用层? ? 7

表示层? ?6

会话层? ? 5

传输层? ? 4

网络层? ? 3

数据链路层? ?2

物理层? ? 1

?

?

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 15:56:45  更:2021-07-15 15:58:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 13:22:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码