PHP 配列宣言、トラバーサル、配列グローバル変数_PHP チュートリアル
phpチュートリアルの配列宣言、トラバーサル、配列グローバル変数
[php]
/*
※1. 配列の概要
※1. 配列の本質:変数の集合を管理・操作する、バッチ処理
※2. 配列は複合型(複数格納可能)です
* 3. 配列には、任意の長さ、任意のタイプのデータを格納できます
* 4. 配列は他の言語のデータ構造 (リンク リスト、キュー、スタック、コレクション クラス) の機能を完了できます
*
*
*
* 2. 配列の分類
※配列には複数の単位があります(単位を要素と呼びます)
※各要素(添字[キー]と値)
※要素に個別にアクセスする場合は添字(キー)で要素にアクセスします
※1. 1次元配列、2次元配列、3次元配列。 。 。多次元配列
* (配列の配列は、他の配列が配列に格納されることを意味します)
※2. PHPには2種類の配列があります
※インデックス配列:添字が連番の整数のインデックスです
* 連想配列: 添字はインデックスとなる文字列です
*
※添え字は2種類(整数、文字列)のみです
*
*
* 3. 配列の複数の宣言方法
*
* 1. value ステートメントを配列要素に直接代入します
* インデックス添字が指定されていない場合、シーケンシャルインデックスは 0 から始まります
* インデックスの添字が指定されている場合、次の添字は最大のものから 1 ずつ増加します
* 前の添字が後で出現する場合、代入の場合は前の要素が再代入されます
※宣言を混在させる場合、インデックスと関連付けは相互に影響しません(インデックス添字の宣言は影響を受けません)
*
* 2. array()関数宣言を使用します
* デフォルトはインデックス配列です
* 連想配列とインデックス付き配列の添字を指定する場合は、key => value を使用します
※複数のメンバー間は「,」で区切ります
* 3. 他の関数宣言を使用する
*
*
*
*
*/
//インデックス配列
$user[0]=1;//ユーザーのシリアル番号
$user[1]="zhangsan";//ユーザー名
$user[2]=10;//年齢
$user[3]="nan";//性別
エコー '
'; print_r($user); エコー ''; //連想配列
$ユーザー["id"]=1; $user["名前"]="張さん"; $user["年齢"]=10; $ユーザー["セックス"]; $user["age"]=90;//割り当て
echo $user["name"];//出力
//array() を使用して配列を宣言します
$user=array(1,"ジャンサン",10,"ナン"); //array() を使用して連想配列を宣言します
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); //複数のユーザー情報レコードをテーブルに保存するための多次元配列(複数レコード)を宣言します
$user=array(
//この行を呼び出すには $user[0] を使用します (このレコード内の名前 $user[0][1] を呼び出すなど)
array(1,"張三",10,"ナン"),
//このレコード内の名前 $user[1][1] を呼び出すなど、$user[1] を使用してこの行を呼び出します
配列(2,"lisi",20,"nv")
); //配列は複数のテーブルを保存し、各テーブルには複数のレコードがあります
$info=array(
"ユーザー"=>array(
array(1,"張三",10,"ナン"),
配列(2,"lisi",20,"nv")
)、
"スコア"=>array(
配列(1,90,80,70)、
配列(2,60,40,70)
)
); echo $info["score"][1][1];//出力 60,
?>
配列スーパーグローバル変数
/* 事前定義された配列:
* 自動グローバル変数 --- スーパーグローバル配列
*
※1. WEBサーバー、クライアント、動作環境、ユーザー入力のデータが含まれます
* 2. これらの配列は特別です
* 3. 自動的にグローバルに有効になり、これらの配列を直接使用できます
※4. これらの配列はユーザーがカスタマイズすることはできませんが、これらの配列の操作方法は自作配列の操作方法と同じです
* 5. これらの配列は関数内で直接使用できます
*
* $_GET //URL リクエストを通じてスクリプトに送信された変数
* $_POST //HTTP POST メソッド経由でスクリプトに送信される変数
* $_REQUEST //GET、POST、COOKIE メカニズムを介してスクリプトに送信される変数
* $_FILES //http post メソッド ファイルのアップロードを通じてスクリプトに送信された変数
* $_クッキー
* $_セッション
* $_ENV //実行環境によってスクリプトに送信された変数
* $_SERVER //変数は WEB サーバーによって設定されるか、現在のスクリプトの実行環境に直接関連付けられます
* $GLOBALS //現在のスクリプトで有効な変数がここにある限り、配列のキー名はグローバル スクリプトの名前になります
*
*
*/
// スーパーグローバル配列は関数内で直接呼び出すことができます
$arr=array(10,20);//一般的な配列
$_GET=array(50,90);//スーパーグローバル配列
関数デモ(){
global $arr;//グローバル変数を呼び出すには、まず
をインクルードする必要があります print_r($arr); Print_r($_GET);//
を含めずにスーパーグローバル配列を直接呼び出します }
?>
//渡された値を変数として直接使用します。これは、php.ini 設定ファイルで register_global=on の場合に便利です。
echo $username."
"; echo $email."
"; echo $page."
"; //最も安定した値のメソッド
echo $_GET["ユーザー名"]."
"; echo $_GET["メール"]."
"; echo $_GET["ページ"]."
"; ?>
これは $_GET テストです ユーザー名: パスワード: フォーム> print_r($_GET);//
を受信できません print_r($_POST);//この方法でのみ
を受け取ることができます ?>
//$_ENV の使用法
echo'
'; プリント_r($_ENV); エコー''; // 現在の環境を表示
// 個別にトラバースすることもできます
?>
// $GLOBALS スーパーグローバル配列を使用して関数内でグローバル変数を呼び出します
$a=100; $b=200; $c=300; 関数デモ()
{
//グローバル変数を直接呼び出す
echo $GLOBALS["a"]."
"; echo $GLOABLS["b"]."
"; echo $GLOABLS["c"]."
";
}
?>
配列トラバーサル
/* 配列トラバーサル
*
* 1. for ステートメントを使用して配列をループします
※1.他言語(こちらのみ)
* 2. この方法は PHP では推奨されない方法です
* 3. 配列はインデックス配列である必要があり、添え字は連続している必要があります。
* (インデックス配列の添字は不連続である可能性があり、配列と連想配列、これら 2 つを横断することはできません)
*
* 2. foreach ステートメントを使用して配列をループします
* foreacho(配列変数を変数値として){
* //ループ本体
* }
※1. ループ回数は配列の要素数によって決まります
* 2. 各サイクルは配列内の要素を後続の変数に割り当てます
*
* foreach(添字変数としての配列変数=>値変数){
* }
*
*
* 3.while() list() each() 組み合わせループは配列を走査します
*
* each() 関数:
※1.パラメータとして配列が必要です
* 2. 返されるものも配列です
* 3. 返される配列には 4 つの添字 (固定) 0、1、key、value が含まれます
* 0 と key 添字は現在のパラメータの配列要素のキーです
※1と値の添字は現在のパラメータの配列要素の値です
* 4. デフォルトでは、現在の要素が最初の要素です
* 5. 実行するたびに、現在の要素が後ろに移動します
* 6. 最後の要素に到達した後にこの関数を再度実行すると false を返します
* list() 関数:
* 1. list()=array(); この関数には配列を割り当てる必要があります
* 2. 配列の要素数は list() 関数のパラメータの数と同じである必要があります
* 3. list()関数の各パラメータに配列の各要素の値が代入され、list()が各パラメータを変数に変換します
* 4.list() はインデックス配列のみを受け入れることができます
* 5. インデックスの添え字の順にパラメータに値を代入します
*
*
*
*/
//for ステートメントは配列を走査します
$user=array(1,"張さん",40,"ナン"); for($i=0;$i {
echo "$user[{$i}]=".$user[$i]."
"; }
// foreach を使用します
$user=array(1,"ジャンサン",40,"ナン"); foreach($user as $val)//$val はカスタム変数です
{
echo $val."
";//出力は添え字とは何の関係もありません
}
foreach($user as $key=>$val)//$val $key はすべてカスタム変数です
{
echo $key."=====>".$val."
"; }
//foreach は多次元配列を走査します
$info=array(
"ユーザー"=>array(
//$user[0]
array(1, "ザンサン", 10, "ナン"),
//$user[1][1]
array(2, "lisi", 20, "nv"), //$user[1]
//$user[2]
array(3, "王武", 30, "ナン")
)、
"スコア"=>array(
配列(1, 100, 90, 80)、
配列(2, 99, 88, 11)、
配列(3, 10, 50, 88)
)、
"接続"=>array(
配列(1, '110', 'aaa@bbb.com')、
配列(2, '120', 'bbb@ccc.com')、
配列(3, '119', 'ccc@ddd.com')
)
); foreach($info as $tableName=>$table)
{
echo ''; echo '
'.$tableName.'
{
エコー '
{
echo '
エコー '
エコー 'テーブル>'; }
// each() の使用法
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); $a=each($user);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id ) デフォルトは最初の値です要素
プリント_r($a); $b=それぞれ($ユーザー); print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 実行されるたびに 1 つ前にトラバースします
$c=それぞれ($ユーザー); print_r($c);//Array ( [1] => 10 [値] => 10 [0] => 年齢 [キー] => 年齢 )
$d=それぞれ($ユーザー); print_r($d);//Array ( [1] => nan [値] => nan [0] => 性別 [キー] => 性別 )
$e=それぞれ($ユーザー); var_dump($e);//bool(false) 要素がない場合は値が返されます
//each() はトラバース中に連携します
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); while($arr=each($user))
{
//echo $arr[0]."====>".$arr[1]."
";//キー (添え字) と 0,1 までの値を表示します
echo $arr["key"]."===>".$arr["value"]."
";//key, value を通じてキーの値を表示します
}
//list()関数の使い方
list($name,$年齢,$性別)=array("張さん",10,"nnnnn"); echo $name."
"; echo $age."
"; echo $sex."
"; //別の使い方
list(,,$sex)=array("張さん",10,"nnnnn"); echo $sex."
";//性別を変数のみに変換します
//IP判定
$ip="192.168.1.128"; list(,,,$d)=explode(".",$ip);//explode は . で区切られたことを意味し、配列を返します
echo $d;//128 を取り出します
//List() はインデックス配列の例のみを受け取ることができます
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); list($key,$value)=each($user);//Array( [1]=>1 [0]=>id) インデックス添字の順にリスト内のパラメータに値を割り当てます、つまり 0 キーが最初で、次に 1 の値があります
echo $key."--->".$value
//list() each() を組み合わせて使用しながら
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); while(list($key,$value)=each($user))
{
echo $key."--->".$value."
"; }
//複数のループ後に 1 回だけ表示する解決策
//配列の内部ポインタ制御関数を使用します
//next(array); 配列ポインタは次の配列に移動します
//prev(array); 配列ポインタを前の配列に移動します
//reset(array); 配列ポインタを最初の配列に移動します (リセット)
//end(array); 配列ポインタを最後の配列に移動します
//current(array); 現在の要素、つまり配列ポインタが指す要素の値を取得します。
//key(array); 現在の要素のキー値 (添え字) を取得します
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan"); while(list($key,$value)=each($user))
{
echo $key."--->".$value."
"; }
// ここで、配列ポインタを次の最初のループに移動して出力します
//リセット($user)
while(list($key,$value)=each($user))// each() は最後のものに対して false を返すため、ループが直接飛び出します
{
echo $key."--->".$value."
"; }
while(list($key,$value)=each($user))// each() は最後のものに対して false を返すため、ループが直接飛び出します
{
echo $key."--->".$value."
"; }
echo current($user)."=====>".key($user); ?>
/*
※1. 配列の概要
※1. 配列の本質:変数の集合を管理・操作する、バッチ処理
※2. 配列は複合型(複数格納可能)です
* 3. 配列には、任意の長さ、任意のタイプのデータを格納できます
* 4. 配列は他の言語のデータ構造 (リンク リスト、キュー、スタック、コレクション クラス) の機能を完了できます
*
*
*
* 2. 配列の分類
※配列には複数の単位があります(単位を要素と呼びます)
※各要素(添字[キー]と値)
※要素に個別にアクセスする場合は添字(キー)で要素にアクセスします
※1. 1次元配列、2次元配列、3次元配列。 。 。多次元配列
* (配列の配列は、他の配列が配列に格納されることを意味します)
※2. PHPには2種類の配列があります
※インデックス配列:添字が連番の整数のインデックスです
* 連想配列: 添字はインデックスとなる文字列です
*
※添え字は2種類(整数、文字列)のみです
*
*
* 3. 配列の複数の宣言方法
*
* 1. value ステートメントを配列要素に直接代入します
* インデックス添字が指定されていない場合、シーケンシャルインデックスは 0 から始まります
* インデックスの添字が指定されている場合、次の添字は最大のものから 1 ずつ増加します
* 前の添字が後で出現する場合、代入の場合は前の要素が再代入されます
※宣言を混在させる場合、インデックスと関連付けは相互に影響しません(インデックス添字の宣言は影響を受けません)
*
* 2. array()関数宣言を使用します
* デフォルトはインデックス配列です
* 連想配列とインデックス付き配列の添字を指定する場合は、key => value を使用します
※複数のメンバー間は「,」で区切ります
* 3. 他の関数宣言を使用する
*
*
*
*
*/
//インデックス配列
$user[0]=1;//ユーザーシリアル番号
$user[1]="zhangsan";//ユーザー名
$user[2]=10;//年齢
$user[3]="nan";//性別
echo '
';<br> print_r($user);<br> echo '';
//連想配列
$user["id"]=1;
$user["name"]="張三";
$user["年齢"]=10;
$user["性別"];
$user["age"]=90;//割り当て
echo $user["name"];//出力
//array() を使用して配列を宣言します
$user=array(1,"張さん",10,"ナン");
//array() を使用して連想配列を宣言します
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
//複数のユーザー情報レコードをテーブルに保存するための多次元配列(複数レコード)を宣言します
$user=array(
//この行を呼び出すには $user[0] を使用します。たとえば、このレコード内の名前 $user[0][1] を呼び出します
array(1,"張三",10,"ナン"),
// $user[1] を使用してこの行を呼び出します。たとえば、このレコード内の名前 $user[1][1] を呼び出します
配列(2,"lisi",20,"nv")
);
//配列は複数のテーブルを保存し、各テーブルには複数のレコードがあります
$info=配列(
"ユーザー"=>配列(
array(1,"張三",10,"ナン"),
配列(2,"lisi",20,"nv")
)、
"スコア"=>配列(
配列(1,90,80,70),
配列(2,60,40,70)
)
);
echo $info["score"][1][1];//出力 60,
?>
配列スーパーグローバル変数
/* 事前定義された配列:
* 自動グローバル変数 --- スーパーグローバル配列
*
※1. WEBサーバー、クライアント、動作環境、ユーザー入力のデータが含まれます
* 2. これらの配列は特別です
* 3. 自動的にグローバルに有効になり、これらの配列を直接使用できます
※4. これらの配列はユーザーがカスタマイズすることはできませんが、これらの配列の操作方法は自作配列の操作方法と同じです
* 5. これらの配列は関数内で直接使用できます
*
* $_GET //URL リクエストを通じてスクリプトに送信された変数
* $_POST //HTTP POST メソッド経由でスクリプトに送信される変数
* $_REQUEST //GET、POST、COOKIE メカニズムを介してスクリプトに送信される変数
* $_FILES //http post メソッド ファイルのアップロードを通じてスクリプトに送信された変数
* $_クッキー
* $_セッション
* $_ENV //実行環境によってスクリプトに送信された変数
* $_SERVER //変数は WEB サーバーによって設定されるか、現在のスクリプトの実行環境に直接関連付けられます
* $GLOBALS //現在のスクリプトで有効な変数がここにある限り、配列のキー名はグローバル スクリプトの名前になります
*
*
*/
//スーパーグローバル配列は関数内で直接呼び出すことができます
$arr=array(10,20);//一般的な配列
$_GET=array(50,90);//スーパーグローバル配列
関数デモ(){
global $arr;//グローバル変数を呼び出すには、まず
をインクルードする必要があります print_r($arr);
Print_r($_GET);//
を含めずにスーパーグローバル配列を直接呼び出します }
?>
//渡された値を変数として直接使用します。これは、php.ini 設定ファイルで register_global=on の場合に便利です。
echo $username."
";
echo $email."
";
echo $page."
";
//最も安定した値のメソッド
echo $_GET["ユーザー名"]."
";
echo $_GET["メール"]."
";
echo $_GET["ページ"]."
";
?>
これは $_GET テストです

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

WebStorm Mac版
便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
