wordpress 分类子类名称,网站优化排名软件推广,服务器网站目录,网站建设的七大优缺点文章目录 前言1. 数组基础1.1 数组概念1.2 索引数组1.3 关联数组1.4 多维数组 2. 数组函数2.1 count()2.2 array_merge()2.3 array_keys()2.4 array_values()2.5 in_array() 3. 数组遍历3.1 for循环遍历3.2 foreach遍历3.3 遍历索引数组3.4 遍历关联数组 4. 数组排序4.1 sort()… 文章目录 前言1. 数组基础1.1 数组概念1.2 索引数组1.3 关联数组1.4 多维数组 2. 数组函数2.1 count()2.2 array_merge()2.3 array_keys()2.4 array_values()2.5 in_array() 3. 数组遍历3.1 for循环遍历3.2 foreach遍历3.3 遍历索引数组3.4 遍历关联数组 4. 数组排序4.1 sort()4.2 asort()4.3 ksort() 5. 预定义超全局数组变量5.1 概述5.2 $_GET5.3 $_POST5.4 $_REQUEST5.5 $_SERVER5.6 $_SESSION5.7 $_COOKIE5.8 $_FILES5.9 $_ENV 前言
PHPHypertext Preprocessor是一种开源的脚本语言主要用于Web开发特别是服务器端编程。是学习网络安全需要掌握的一门语言。
PHP数组是一种数据结构用于存储一系列有序的数据可以包含各种类型的值如数字、字符串、布尔值、甚至是其他数组。
1. 数组基础
1.1 数组概念
数组是一种数据结构可以存储多个值。在 PHP 中数组可以分为索引数组和关联数组。下面是数组的特点
使用键值对的方式来存储数据。键key变量的编号值value变量的值。数组中的元素可以是任意类型的数据对象。
1.2 索引数组
定义 索引数组使用整数索引来访问元素。索引从 0 开始依次递增。
示例
假设你要保存班级的学生姓名
$students array(张三, 李四, 王五);
echo $students[0]; // 输出 张三解释 $students[0] 访问数组中第一个元素“张三”。
另一种创建索引数组的方法
$students [张三, 李四, 王五];1.3 关联数组
定义 关联数组使用字符串键来访问元素。
示例
假设你要保存一个人的信息如姓名、年龄和城市
$person array(name 李华,age 28,city 上海
);
echo $person[name]; // 输出 李华解释 $person[name] 访问关联数组中键为“name”的值“李华”。
另一种创建关联数组的方法
$person [name 李华,age 28,city 上海
];1.4 多维数组
数组中的元素可以是任何类型的数据数组中的元素也可以是数组。
示例
假设有一个班级里面有四个学生用户。
$ns_class array($stu1,$stu2,$stu3,$stu4);echo pre;
print_r($ns_class);解释print_r与echo相似在输出布尔类型变量时True为1False无。
2. 数组函数
2.1 count()
功能 返回数组中元素的数量。
示例
$fruits [苹果, 香蕉, 橙子];
echo count($fruits); // 输出 3解释 count($fruits) 返回数组 $fruits 中的元素数量即 3。
2.2 array_merge()
功能 合并两个或多个数组。
示例
$array1 [a, b];
$array2 [c, d];
$result array_merge($array1, $array2);
print_r($result); // 输出 Array ( [0] a [1] b [2] c [3] d )解释 array_merge() 合并了 $array1 和 $array2结果是一个包含所有元素的新数组。
2.3 array_keys()
功能 返回数组中所有的键。
示例
$person [name 李华,age 28,city 上海
];
$keys array_keys($person);
print_r($keys); // 输出 Array ( [0] name [1] age [2] city )解释 array_keys($person) 返回关联数组 $person 中所有的键。
2.4 array_values()
功能 返回数组中所有的值。
示例
$values array_values($person);
print_r($values); // 输出 Array ( [0] 李华 [1] 28 [2] 上海 )解释 array_values($person) 返回关联数组 $person 中所有的值。
2.5 in_array()
功能 检查数组中是否存在某个值。
示例
$fruits [苹果, 香蕉, 橙子];
if (in_array(香蕉, $fruits)) {echo 香蕉存在于数组中;
}解释 in_array(香蕉, $fruits) 检查“香蕉”是否存在于 $fruits 数组中如果存在输出相关信息。
3. 数组遍历
3.1 for循环遍历
使用for循环可以遍历数组但是这种方法依赖于数组中key自然数规律具有局限性只能遍历索引数组。
示例
for($a 0;$a count($word); $a){echo $word[$a].br /;
}3.2 foreach遍历
foreach是专门用来遍历数组的foreach是一种循环不需要额外的计时器。
示例
foreach($variable as $key $value){#执行代码
}3.3 遍历索引数组
示例
$fruits [苹果, 香蕉, 橙子];
foreach ($fruits as $fruit) {echo $fruit . br;
}解释 foreach 循环遍历索引数组 $fruits 的每个元素并逐一输出。
3.4 遍历关联数组
示例
$person [name 李华,age 28,city 上海
];
foreach ($person as $key $value) {echo $key: $valuebr;
}解释 foreach 循环遍历关联数组 $person 的每个键值对输出键和值。
4. 数组排序
4.1 sort()
功能 对索引数组进行升序排序。
示例
$numbers [3, 1, 4, 1, 5];
sort($numbers);
print_r($numbers); // 输出 Array ( [0] 1 [1] 1 [2] 3 [3] 4 [4] 5 )解释 sort() 函数对 $numbers 数组进行升序排序。
4.2 asort()
功能 对关联数组进行升序排序保持键值关系。
示例
$person [John 25,Doe 30,Jane 22
];
asort($person);
print_r($person); // 输出 Array ( [Jane] 22 [John] 25 [Doe] 30 )解释 asort() 对 $person 数组按值升序排序但保持键值对关系。
4.3 ksort()
功能 按键对关联数组进行升序排序。
示例
$person [John 25,Doe 30,Jane 22
];
ksort($person);
print_r($person); // 输出 Array ( [Doe] 30 [Jane] 22 [John] 25 )解释 ksort() 对 $person 数组按键升序排序。
5. 预定义超全局数组变量
5.1 概述
预定义PHP已经定义好的已经存在的可以直接拿来使用。
超全局超级全局变量作用域是超全局可以在脚本的任何地方访问和使用包括函数内部和外部这些数组在整个脚本中都可以访问无需通过 global 关键字。
数组作用$_GET通过URL参数query string传递给当前脚本的变量的数组。注意该数组不仅仅对method为GET的请求生效而是会针对所有带query string的请求。$_POST当HTTP POST请求的Content-Type是application/x-www-form-urlencoded或multipart/form-data时会将变量以关联数组形式传入当前脚本。$GLOBALS关联数组array包含当前脚本定义成全局范围的所有变量的引用。数组的键就是变量的名字。$_SERVER服务器和执行环境信息$_FILES通过HTTP POST方式上传到当前脚本的项目的数组。$_COOKIE通过HTTP Cookies方式传递给当前脚本的变量的数组。$_SESSION当前脚本可用SESSION变量的数组。$_REQUEST默认情况下包含了$_GET、$_POST和$_COOKIE数组。
5.2 $_GET
功能 存储通过 URL 传递的查询参数GET传参的参数名做数组的key参数值做数组的value。
示例
假设你有一个 URL如 example.com/index.php?name张三age28。
// index.php
echo $_GET[name]; // 输出 张三
echo $_GET[age]; // 输出 28解释 $_GET 数组获取 URL 查询参数 name 和 age 的值。
5.3 $_POST
功能 存储通过 POST 请求提交的数据。
示例
假设你有一个 HTML 表单
form methodpost actionprocess.phpinput typetext nameusername value张三input typesubmit value提交
/form在 process.php 中你可以这样处理
// process.php
echo $_POST[username]; // 输出 张三解释 $_POST 数组获取表单字段 username 的值。
5.4 $_REQUEST
功能 存储 $_GET、$_POST 和 $_COOKIE 中的所有数据。
但是$_REQUEST在接收参数的时候会受到一个PHP选项的控制。
示例
// URL: example.com/index.php?name张三
// Form: form methodpost actionindex.phpinput typetext nameage value28input typesubmit/formecho $_REQUEST[name]; // 输出 张三 (从 URL 获取)
echo $_REQUEST[age]; // 输出 28 (从表单获取)解释 $_REQUEST 综合了 $_GET、$_POST 和 $_COOKIE 的数据。
5.5 $_SERVER
功能 提供服务器和执行环境的信息。
示例
echo $_SERVER[HTTP_USER_AGENT]; // 输出用户的浏览器信息
echo $_SERVER[REQUEST_METHOD]; // 输出请求方法 (例如 GET 或 POST)解释 $_SERVER 包含有关服务器和客户端环境的信息。
5.6 $_SESSION
功能 存储会话级别的数据通常用于用户认证和其他会话相关信息。
示例
// 开始会话
session_start();
$_SESSION[username] 张三;// 访问会话数据
echo $_SESSION[username]; // 输出 张三解释 $_SESSION 用于存储和获取会话中的数据。
5.7 $_COOKIE
功能 存储客户端发送的 cookies 数据。
示例
// 设置 cookie
setcookie(user, 张三, time() 3600);// 访问 cookie
echo $_COOKIE[user]; // 输出 张三解释 $_COOKIE 获取客户端发送的 cookie 数据。
补充
Cookie过程为了保持HTTP会话的状态性。
用户提交账密服务器进行身份认证下发身份证下发Cookie浏览器客户端所有的请求都会携带身份信息携带Cookie信息。
5.8 $_FILES
功能 存储上传的文件信息。
示例
假设你有一个文件上传表单
form methodpost enctypemultipart/form-data actionupload.phpinput typefile namefileToUploadinput typesubmit value上传
/form在 upload.php 中你可以这样处理上传的文件
// upload.php
if ($_FILES[fileToUpload][error] UPLOAD_ERR_OK) {echo 文件名: . $_FILES[fileToUpload][name];echo 文件类型: . $_FILES[fileToUpload][type];echo 文件大小: . $_FILES[fileToUpload][size] . bytes;
}解释 $_FILES 数组包含上传文件的各种信息例如文件名、类型和大小。
相关参数
变量含义$_FILES[‘uploaded’]用来保存文件上传的信息$_FILES[‘uploaded’] [‘name’]上传文件的名字$_FILES[‘uploaded’] [‘type’]上传文件的类型$_FILES[‘uploaded’] [‘type_name’]上传文件存储在服务器中的缓存路径$_FILES[‘uploaded’] [‘error’]错误代码$_FILES[‘uploaded’] [‘size’]上传文件的大小
$_FILES中存储的与上传文件有关的信息不是文件本身文件内容在缓存路径中。
正常完成文件上传功能需要将文件从缓存拷贝到服务器文件系统中。
5.9 $_ENV
功能 存储环境变量。
示例
echo $_ENV[PATH]; // 输出环境变量 PATH 的值解释 $_ENV 提供访问服务器环境变量的方法。