PHP 数组

134 阅读2分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

数组

变量类型

复合数据类型

键值对

   键名 键值

   key   value

数组中的元素

   除了对象,可以存放任意类型的数据

数组的分类

键值对     整型的正数    索引数组

键值对     具有语义的字符串   关联数组

数组的创建

第一种创建数组的方式

$stu[]

1、在未指定键名的情况下,给数组赋值,键名从零开始计数,依次增大

2、可以手动给键名

第二种创建数组的方法

array()

数组元素的访问

1、读取

2、添加

3、修改

数组的遍历

for 循环 只适用有规律的索引数组

foreach 语言结构

foreach(stuasstu as key => $value){

}

二维数组

多维数组

预定于超全局数组变量

PHP定义好的,可以直接使用

函数内部或者外部都能使用

$GLOBALS 

引用全局作用域中可以使用的全局变量

$_SERVER   

一个包含诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组

$_GET   

通过URL参数传递给当前脚本的变量的数组

$_POST   

当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。

$_FILES

通过HTTP POST方式上传到当前脚本的项目的数组

$_COOKIE

通过HTTP Cookies 的方式传递给当前脚本的变量的数组

$_SESSION

当前脚本可用SESSION变量的数组

$_REQUEST

默认情况下包含了 GET,_GET, _POST 和 $_COOKIE 的数组

$_ENV

通过环境方式传递给当前脚本的变量的数组

$_GET 

接受来自的URL的传递参数

http://192.168.1.132/PHP/array/get.php?name=GGG

http://192.168.1.132/PHP/array/get.php?name=GGG&passwd=123456

参数的名   键名

参数的值   键值

$_POST   

当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本。

HTTP请求报文的请求正文中

$_FILES

文件上传的相关信息

源码


1.php

<?php
/* $name = "GGG";
$age = 24;
$sex = true;
$grade = 78.9;
 */
 
/* $stu[] = "GGG";
$stu[] = 24;
$stu[] = true;
$stu[] = 78.9; 
*/
/* $stu[10] = "GGG";
$stu[20] = 24;
$stu[30] = true;
$stu[] = 78.9; */

$stu['name'] = "GGG";
$stu['age'] = 24;
$stu['sex'] = true;
$stu['grade'] = 78.9;
$stu[]="Content";
//echo $stu;
echo "<pre>";
//print_r($stu);
var_dump($stu);
?>

 


2.php

<pre>
<?php
$stu1 = array("GGG",24,true,78.9);
//print_r($stu1);
$stu2 = array(
		'name' => "MDM",
		'age' => "23",
		'sex' => false,
		'grade' => 99.9,
		'Something!'
);
//print_r($stu2);

echo $stu1[0];
$stu1[3]=100;
print_r($stu1);
?>

 


3.php

<?php
$stu1 = array("GGG",24,true,78.9);
for($i=0;$i<count($stu1);$i++){
	echo $stu1[$i]."<br />";
}
$stu2 = array(
		'name' => "MDM",
		'age' => "23",
		'sex' => false,
		'grade' => 99.9,
		'Something!'
);
foreach($stu2 as $key => $value){
	echo $key."=>".$value."<br />";
}
?>


4.php(创建表格)

<html>
	<title>学生基本信息表</title>
	<meta charset="utf-8">
</html>

<?php
$students=array(
	1901 => array(
	'name' => "GGG",
	'age' => 24,
	'esx' => true,
	'grade' => 79.9
	),
	1902 => array("MDM",23,false,61),
	1903 => array("XL",25,true,59.9)
);
echo "<table border=3>";
echo "<tr>
	<td>姓名</td>
	<td>年龄</td>
	<td>性别</td>
	<td>成绩</td>
</tr>";

foreach($students as $v){
	echo "<tr>";
	foreach($v as $vv){
		if($vv === true){
			$vv = "男";
		}
		if($vv === false){
			$vv = "女";
		}
		echo "<td>".$vv."</td>";
	}
	echo "</tr>";
}
echo "</table>";
?>


$_GET

get.php

<meta charset="utf-8">
<?php
//var_dump($_GET);
if(isset($_GET['userSubmit'])){
	if(isset($_GET['userName']) && $_GET['userName']=="GGG"
	&& isset($_GET['userPass']) && $_GET['userPass']=="123456"
	){
		echo "Welcome,".$_GET['userName'];
	}else{
		echo "用户名或密码错误<a href='./login.html'>请通过重新登录</a>";
	}
}else{
	echo "Error!<a href='./login.html'>请通过表单登录</a>";
}
?>

login.html

<html>
	<meta charset="utf-8">
	<h1>用户登录</h1>
	<form
		action="./get.php"
		method="get"
		target="_blank"
	>
	用户名:<input type="text" name="userName"><br />
	密码:<input type="password" name="userPass"><br />
	<input type="submit" name="userSubmit" value="登录"">
</html>


$_POST

post.ph

<meta charset="utf-8">
<?php
//var_dump($_POST);
if(isset($_POST['userSubmit'])){
	if(isset($_POST['userName']) && $_POST['userName']=="GGG"
	&& isset($_POST['userPass']) && $_POST['userPass']=="123456"
	){
		echo "Welcome,".$_POST['userName'];
	}else{
		echo "用户名或密码错误<a href='./login.html'>请通过重新登录</a>";
	}
}else{
	echo "Error!<a href='./login.html'>请通过表单登录</a>";
}
?>

login.html

<html>
	<meta charset="utf-8">
	<h1>用户登录</h1>
	<form
		action="./post.php"
		method="post"
		target="_blank"
	>
	用户名:<input type="text" name="userName"><br />
	密码:<input type="password" name="userPass"><br />
	<input type="submit" name="userSubmit" value="登录"">
</html>


$_POST上传文件

对php.ini配置文件做修改

使上传文件后的缓存位置更改为C:\phpStudy\tmp\tmp

重启phpStudy(使配置文件生效)

upfile.php

<html>
<meta charset="utf-8">
<h1>
	文件上传测试
</h1>
<form
	action=""
	method="post"
	enctype="multipart/form-data"
>
	<input type="file" name="userUpFile">
	<input type="submit" name="userSubmit" value="上传">
</form>
</html>
<hr />
<?php
echo "<pre>";
if(isset($_POST['userSubmit'])){
	var_dump($_FILES);
	$tmp_path=$_FILES['userUpFile']['tmp_name'];
	$path=__DIR__."\".$_FILES['userUpFile']['name'];//__DIR__获取当前php脚本所在目录
	//echo $path;
	if(move_uploaded_file($tmp_path,$path)){ 
	//move_uploaded_file(参数1,参数2);将上传上来的缓存文件的目录(参数1)保存到参数2目录下
		echo "upfile success!";
		echo "<br />".$_FILES['userUpFile']['name'];
	}else{
		echo "upfile failed";
	}
}
?>

到up目录下查看保存的文件


 参考文献:

千峰网络信息安全开源课程