PHP学习笔记
一、基本知识
1.1函数知识
phpinfo:这个函数会显示一个当前电脑(服务器)的详细php信息。
1.2常量变量
PHP变量以美元符$开始。
变量可分类为:可变变量,外部变量,环境变量
可变变量EX:
1 | <?php |
外部变量EX:
1 | <html> |
PHP代码调用
1 | <?php |

环境变量:
$_SERVER

常量:
代码中的定义:
define(常量名,常量值)
1、常量名可以小写,但是通常大写
2、常量名可以不加引号,但是通常加上引号
3、在字符串中调用常量的时候,必须在引号外面
4、常量名建议只用字母和下划线
1 | <?php |
一些内置的常量
1.3php数据类型
2种特殊的数据类型:
resource(资源类型)与null(无/空白类型)
1.4查看数据类型和判断数据类型
查看数据类型:
1、gettype(传入一个变量)能获得变量的类型
2、var_dump(传入一个变量)输出变量类型和值
1 |
|
判断数据类型

numeric:数值
callable:函数
scalar:标量
1.5PHP三元运算符及其他运算符

1.6PHP流程控制语句
if switch while for基本与c相同
1 | do{ |
1 |
|
1.7PHP函数基本语法
1 | Function 函数名(参数名1=[值1], 参数名2=[值2] , 参数名n=[值n]) |
文件包含

数学常用函数总结:

字符串常用函数总结:

dirname:
1 | $path = "/var/www/html/index.php"; |



疑似有点多了
时间函数:
1 |
|
1.8PHP数组结构
数组array,可以存入多个不同类型的数据,为复合数据类型。
1 |
|
关于为什么在var_dump前后加入 echo <pre>:echo ‘
';将标签作为 HTML 输出到浏览器,这告诉浏览器开始一个预格式化的区域。var_dump($shu);输出数组的详细信息,这部分信息将被‘;标签格式化。最后,echo '关闭` 标签,结束预格式化区域。
1
2
3
4
5
6
7
8
$kele = array('只有不断努力才能博得未来',10 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');
//打印显示$kele
echo '<pre>';
var_dump($kele);
echo '</pre>';通过键值对应符,可以做到索引数组下标不一次从0开始。
常用操作数组函数
1.9正则表达式
可以有效地处理和操纵文本。例如,它可以用于验证用户输入的数据格式(例如,姓名,电子邮件,电话号码等)是否正确,在文本内容中查找或替换匹配的字符串,等等。
在正则表达式中具有特殊含义的字符是:. * ? + [ ] ( ) { } ^ $ | \。每当想按字面意义使用它们时,都需要反斜杠。例如,如果要匹配“.”,则必须编写.。
| [abc] | 匹配字符a,b或c中的任何一个。 |
|---|---|
| [^abc] | 匹配a,b,c以外的任何一个字符。 |
| [a-z] | 匹配从小写字母a到小写字母z的任意一个字符。 |
| [A-Z] | 匹配从大写字母A到大写字母Z的任意一个字符。 |
| [a-Z] | 匹配从小写字母a到大写字母Z的任意一个字符。 |
| [0-9] | 匹配0到9之间的一个数字。 |
| [a-z0-9] | 匹配a与z之间 或 0与9之间的单个字符。 |
正则表达式,可以用特殊含义字符定界,如:
1 | /中间写正则/ |
| preg_match() | 执行正则表达式匹配。 |
|---|---|
| preg_match_all() | 执行全局正则表达式匹配。 |
| preg_replace() | 执行正则表达式搜索并替换。 |
| preg_grep() | 返回与模式匹配的输入数组的元素。 |
| preg_split() | 使用正则表达式将字符串拆分为子字符串。 |
| preg_quote() | 引用在字符串中找到的正则表达式字符。 |
2.0PHP文件操作
readfile ( string: $文件名)
功能:传入一个文件路径,输出一个文件。
1 |
|
file_get_contents打开文件函数:
1 |
|
2.1魔术常量
_LINE_
1 | <?php |
2.2反序列化常用魔术
__construct()//当一个对象创建时被调用
__destruct() //当一个对象销毁时被调用
__toString() //当一个对象被当作一个字符串使用
__sleep()//在对象在被序列化之前运行
__wakeup()//将在反序列化之后立即被调用(通过序列化对象元素个数不符来绕过)
__get()//获得一个类的成员变量时调用
__set()//设置一个类的成员变量时调用
__invoke()//调用函数的方式调用一个对象时的回应方法
__call()//当调用一个对象中的不能用的方法的时候就会执行这个函数
2.3 关联数组
关联数组(Associative Array)是PHP中一种数组类型,它的特点是数组的**键(key)**不是数字,而是**字符串**或其他数据类型。每个键与一个值(value)相关联,形成“键 => 值”的键值对。
1 | $whitelist = ["source" => "source.php", "hint" => "hint.php"]; |
2.4 mb_substr & mb_strpos
mb_substr 和 mb_strpos 都是 PHP 中与多字节字符(如中文、日文等)相关的字符串处理函数,它们属于 mbstring(多字节字符串处理扩展Multibyte String)库的一部分。
与标准的 substr 和 strpos 函数相比,mb_substr 和 mb_strpos 更适合处理多字节字符集,特别是对于非拉丁字符(如中文、日文、韩文)等情况。
mb_substr:多字节字符串截取:
1 | mb_substr(string $str, int $start, int $length = NULL, string $encoding = NULL): string |
$str:要截取的原始字符串。
$start:开始截取的位置(基于 0 的索引,支持负值表示从字符串末尾开始)。
$length(可选):截取的长度(单位为字符数,而不是字节数)。如果省略,则截取到字符串末尾。
$encoding(可选):字符编码,默认是 UTF-8。
mb_strpos:查找多字节字符串的位置:
1 | mb_strpos(string $haystack, string $needle, int $offset = 0, string $encoding = NULL): int|false |
2.5 $_REQUEST
$_REQUEST是PHP中用来获取请求参数的全局数组,可以同时包含GET、POST、COOKIE中的
2.6 超级全局数组
$_REQUEST 并不算是 PHP 的 魔术(magic),而是 PHP 的一个 超级全局数组(superglobal array)。它是内置的、自动可用的全局变量,能够存储来自 HTTP 请求 的数据,包括 GET、POST 和 COOKIE 的数据。
- 什么是 PHP 的超级全局数组?
PHP 提供了一些预定义的全局数组,叫做 超级全局数组。这些数组可以在任何作用域内访问,而不需要通过 global 关键字显式声明。PHP 中常用的超级全局数组包括:
1 | $_GET:用于获取 URL 查询字符串中的参数(通常是通过 GET 请求传递的)。 |



