目次
配列には、配列(多次元配列/ 2次元配列)を含めることもできます。
$ _GET(getメソッドによって渡されたパラメーターを受け取るために使用されます)★
アレイ
変数のタイプです(基本的な変数タイプで
はありません)は、複合データ型の
キーと値のペアです(キー名キーキー値値)
配列内の要素:
(オブジェクトに加えて、任意のデータ型のデータを格納できます!)配列も配列に格納できます
<?php
$name="AJEST";
$age=24;
$sex=true;
$grade=78.9;
//把上面四个变量放到同一个变量里面去
$stu[]="AJEST";//[]实际上是一个运算符
$stu[]=24;
$stu[]=true;
$stu[]=78.9;
//echo $stu; echo只能输出简单的数据类型
echo "<pre>";//pre标签格式化输出
//print_r($stu);//print_r是输出一个数组
var_dump($stu);
?>
配列には、配列(多次元配列/ 2次元配列)を含めることもできます。
<?php
$students=array(
1901 => array("AJEST",24,true,79.9),
1902 => array("MDM",23,false,61),
1903 => array("XL",25,true,59.9)
);
print_r($students);
//想取得第一个学生的成绩
echo $students[1901][3];
?>
<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>";
?>
配列分類
キーと値のペア、正の整数は、インデックス配列と呼ばれます
セマンティック文字列を持つキーと値のペアは、連想配列と呼ばれます
アレイの作成
配列を作成する最初の方法
$ stu []
1.キー名が指定されていない場合は、配列に値を割り当てると、キー名が大きいものから数え始め、順番に増えていきます。
2.手動でキー名を付けることができます
<?php
$stu[10]="AJEST";//[]实际上是一个运算符
$stu[20]=24;
$stu[30]=true;
$stu[]=78.9;
echo "<pre>";//pre标签格式化输出
var_dump($stu);
?>
<?php
$stu['name']="AJEST";//[]实际上是一个运算符
$stu['age']=24;
$stu['sex']=true;
$stu['grade']=78.9;
$stu[]="Content";
echo "<pre>";//pre标签格式化输出
//print_r($stu);//print_r是输出一个数组
var_dump($stu);
?>
配列を作成する2番目の方法
アレイ()
<pre>
<?php
$stu1=array("AJEST",24,true,78.9);//[]实际上是一个运算符
print_r($stu1);
$stu2=array(
'name' => "MDM",
'age' => "23",
'sex' => false,
'grade' =>99.9,
'Something like this!'
);
print_r($stu2);
?>
配列要素へのアクセス
1.読む
2.追加(指定されたキー名がすでに存在する場合は、配列に元のキー名を指定しないでください)。
3.変更
<pre>
<?php
$stu1=array("AJEST",24,true,78.9);//[]实际上是一个运算符
print_r($stu1);
$stu2=array(
'name' => "MDM",
'age' => "23",
'sex' => false,
'grade' =>99.9,
'Something like this!'
);
echo $stu1[0];//AJEST 查询名字
$stu1[3]=100;//成绩改成100
print_r($stu1);
?>
アレイトラバーサル
forループは、定期的にインデックスが付けられた配列にのみ適しています
foreach言語構造
インデックス配列トラバーサル(forループ)
<?php
$stu1=array("AJEST",24,true,78.9);
//count()--计算数组中的单元数目,或对象中属性的个数
for($i=0;$i<count($stu1);$i++)
{
echo $stu1[$i]."<br/>"; //中括号是运算符
}
?>
連想配列トラバーサル(foreach)
<?php
$stu1=array(
'name'=>"MDM",
'age'=>"23",
'sex'=>false,
'grade'=>99.9,
'something like this!'
);
//foreach就是用来遍历数组的,foreach循环每执行一次就访问键值对(foreash有个自己的计数器,编程者不可见)智能
//数组中有多少个键值对,它就会循环几次
foreach($stu1 as $key=>$value){ //as就相当于把数组作拆分,$key这个变量名是自己定的,这是一种语言结构
echo $key." => ".$value."<br/>";
}
?>
Foreachは私たちの最も重要な言語構造であり、最も重要です!
事前定義されたスーパーグローバル配列変数(重要!)
phpが定義されているので、直接使用できます。
関数は内部または外部で使用できます。
$ GLOBALS
グローバルスコープで使用できるグローバル変数を参照してください
$ _SERVER
ヘッダー、パス、スクリプトの場所などの情報を含む配列
$ _GET(URLによって渡されたパラメーターを受け取るために使用されます)
URLパラメータを介して現在のスクリプトに渡される変数の配列
$ _POST
HTTPPOSTリクエストのContent-Typeがapplication / x-www-form-urlencodedまたはmultipart / form-dataの場合、変数は連想配列として現在のスクリプトに渡されます。
$ _FILES
HTTPPOSTを介して現在のスクリプトにアップロードされたアイテムの配列
$ _COOKIE
HTTPCookieを介して現在のスクリプトに渡される変数の配列
$ _SESSION
現在のスクリプトで使用可能なSESSION変数の配列
$ _REQUEST
デフォルトでは、$ _ GET、$ _ POST、および$ _COOKIEの配列が含まれています
$ _ENV
環境を介して現在のスクリプトに渡される変数の配列
$ _GET(getメソッドによって渡されたパラメーターを受け取るために使用されます)★
<?php
var_dump($_GET);
?>
渡されたパラメータをURLから受け入れます
http://localhost/PHP/array/get.php?name = GGG(getを介してパラメーターを渡すにはどうすればよいですか?このスクリプトの後に疑問符を追加する必要があります)
http://192.168.1.132/PHP/array/get.php?name=GGG&passwd=123456(2つのパラメーターを渡すには、&を使用して接続する必要があります)
パラメータの名前がキー名になります
パラメータの値がキー値になります
練習:簡単なログインページを書く
get.phpコード:
<meta charset="utf-8">
<?php
//是否点击登录按钮
if(isset($_GET['userSubmit'])){
if(isset($_GET['userName']) && $_GET['userName']=="AJEST"
&& isset($_GET['userPass']) && $_GET['userPass']=="123456"
){
echo "welcome,".$_GET['userName'];
}else{
echo "用户名或者密码错误<a href='./login.html'>请重新登录</a>";
}
}else{
echo "登录错误,请重新登录<a href='./login.html'>请通过表单重新登录</a>";
}
?>
login.phpコード:
<html>
<meta charset="utf-8">
<h1>用户登录</h1>
# action是提交到哪个页面(提交到当前路径下的get.php),提交方式是GET,target="_blank"就是在新标签页打开
<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="登录">
</form>
</html>
GET配列を使用してフォーム送信を受信すると、タグのname属性値がget配列のキーとして使用され、タグの値がget配列のキーになります。
isset関数
<?php
var_dump(isset($_GET));//isset是判断变量是否被定义isset,并且非 null
var_dump(isset($_GET['name']));
?>
$ _POST(★)
HTTPPOSTリクエストのContent-Typeがapplication / x-www-form-urlencodedまたはmultipart / form-data(file)の場合、変数は連想配列として現在のスクリプトに渡されます。
GETデータはURLにあり、POSTデータはHTTP要求メッセージの要求本文にあります
郵便で渡されたパラメータを受け取る
<?php
var_dump($_POST);
?>
login.phpコード
enctypeが書き込まれていない場合、デフォルトはapplication / x-www-form-urlencodedで
あり、multipart / form-dataはファイルです。
<html>
<meta charset="utf-8">
<h1>用户登录</h1>
<form action="./post.php" method="post" target="_blank" enctype="">
用户名:<input type="text" name="userName"><br />
密码:<input type="password" name="userPass"><br />
<input type="submit" name="userSubmit" value="登录">
</form>
</html>
post.phpコード
<pre>
<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>";
}
?>
$ _POSTアップロードファイル(★)
$ _FILES は、HTTPPOSTを介して現在のスクリプトにアップロードされたアイテムの配列です。
アップロードファイルサイズの上限については、php.ini設定ファイルを変更する必要があります(ここをスキップ)
php.ini構成ファイルを変更します
ファイルをC:\ phpStudy \ tmp \ tmpにアップロードした後、キャッシュの場所を変更します
C:\ phpStudy \ tmp \ tmpは、phpアップロードファイルのパスを変更するためのものです
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); //$_FILES捕获文件上传信息
$tmp_path=$_FILES['userUpFile']['tmp_name'];
$path=__DIR__."\\".$_FILES['userUpFile']['name'];//__DIR__获取当前php脚本所在目录
//echo $path;
if(move_uploaded_file($tmp_path,$path)){ //把缓存文件移动到目标文件(缓存文件如果不移动会瞬间消失,要利用sleep函数才能看到)
//move_uploaded_file(参数1,参数2);将上传上来的缓存文件的目录(参数1)保存到参数2目录下
echo "upfile success!";
echo "<br />".$_FILES['userUpFile']['name'];
}else{
echo "upfile failed";
}
}
?>