この章では変数の定義について説明します。
変数と定数を定義する際に、どのような点に注意しますか?あなたは次のように考えているかもしれません:
変数を定義する方法と、C# などの言語との違いは何ですか? 変数では大文字と小文字が区別されますか? PHP には他に重要な変数はありますか?
定数と変数は同じように定義されていますか? 別々に伝えましょう。
1.変数の定義方法とC#などの言語との違いは?
PHP の変数は、ドル記号とそれに続く変数名で表されます。変数名では大文字と小文字が区別されます。例:
$var = ' Jim ' ;
$VAR = ' Kim;
echo "$var,$VAR";//出力 "Jim,Kimi"
?>注意 変数の命名は、実際にはほとんどの言語と同じです。
2 $foo = ' Bob ' ; // 'Bob' を foo に割り当てます
3 $bar = & $foo ; // $bar を変更します
5 echo $bar ; 6 echo $foo ; // $foo も変更されます
他の言語と同様に、変数名を持つ変数のみを参照できます。
3. PHP のその他の重要なポイント
事前定義された変数
事前定義された変数は、PHP の重要な概念です。 PHP には、事前定義された変数が多数用意されています。これらの変数の多くは、実行中のサーバーのバージョンや設定などの要因に依存するため、詳細なドキュメントは用意されていません。一部の事前定義変数は、PHP をコマンド ラインから実行すると有効になりません。
PHP 4.2.0 以降のバージョンでは、PHP 命令 register_globals のデフォルト値は off であることに注意してください。これは PHP に対する大きな変更です。 register_globals を off に設定すると、事前定義された変数セットのグローバルな可用性に影響します。たとえば、DOCUMENT_ROOT の値を取得するには、$DOCUMENT_ROOT の代わりに $_SERVER['DOCUMENT_ROOT'] を使用する必要があります。別の例として、URL http://www から $id の代わりに $_GET['id'] を使用します。 .example.com/test .php?id=3 の ID 値を取得するか、$HOME の代わりに $_ENV['HOME'] を使用して環境変数 HOME の値を取得します。
PHP 4.1.0 以降、PHP は、Web サーバー (利用可能な場合)、ランタイム環境、およびユーザー入力からのデータを含む、事前に決定された配列変数の追加セットを提供します。これらの配列は、自動的にグローバルに、つまりどのスコープでも自動的に有効になるという点で非常に特殊です。したがって、それらはオートグローバルまたはスーパーグローバルと呼ばれることがよくあります。 (PHP にはユーザー定義のスーパーグローバル変数のメカニズムはありません。) スーパーグローバル変数を以下にリストします。また、古い定義済み配列 ($HTTP_*_VARS) がまだ存在していることに気づくでしょう。 PHP 5.0.0 以降、長い形式の PHP 定義済み変数は register_long_arrays を設定することでマスクできます。
次の表は、PHP のスーパーグローバル変数です:
スーパーグローバル変数 | 説明 |
$GLOBALS | 現在のスクリプトのグローバル スコープで有効な各変数への参照が含まれています。この配列のキー名はグローバル変数の名前です。 $GLOBALS 配列は PHP 3 以降に存在します。 |
$_SERVER | 変数は Web サーバーによって設定されるか、現在のスクリプトの実行環境に直接関連付けられます。古い $HTTP_SERVER_VARS 配列に似ています (まだ有効ですが、非推奨です)。 |
$_GET | URL リクエストを通じてスクリプトに送信される変数。古い $HTTP_GET_VARS 配列に似ています (まだ有効ですが、非推奨です)。 |
$_POST | HTTP POST メソッド経由でスクリプトに送信される変数。古い $HTTP_POST_VARS 配列に似ています (まだ有効ですが、非推奨です)。 |
$_COOKIE | HTTP Cookie メソッドを介してスクリプトに送信される変数。古い $HTTP_COOKIE_VARS 配列に似ています (まだ有効ですが、非推奨です)。 |
$_FILES | HTTP POST ファイルアップロード経由でスクリプトに送信される変数。古い配列 $HTTP_POST_FILES 配列に似ています (まだ有効ですが、非推奨です) |
$_ENV | 実行環境によってスクリプトに送信される変数。古い $HTTP_ENV_VARS 配列に似ています (まだ有効ですが、非推奨です)。 |
$_REQUEST | 変数は GET、POST、COOKIE メカニズムを介してスクリプトに送信されるため、この配列は信頼できません。この配列に含まれるすべての変数の有無、および順序は、php.ini の variables_order 設定ディレクティブに従って定義されます。この配列には、PHP 4.1.0 より前には直接対応するものはありません。 import_request_variables() を参照してください。 |
$_SESSION | スクリプト セッションに現在登録されている変数。古い配列 $HTTP_SESSION_VARS 配列に似ています (まだ有効ですが、非推奨です) |
1 の数値は 1
2 の数値は 1
3 function test( $index)
4 {
11 ?>
このコード スニペットと上記のコード スニペットの違いは何ですか? 5 行目に追加のグローバル キーワードがあることに注意してください。理解する。
他の方法はありますか?答えは「はい」です。
コードは次のとおりです:
1 php
2 $var = 0;
3 function test( $index)
4 {
5
6 $GLOBALS [ " var " ] = $GLOBALS [ var " ] + 1 ;
7 echo " . $index . " 番号は " . $GLOBALS [ "
" ;
2 function Test()
4 { static $a = 0 ;
5 echo $a . "
" ;
7 }
8 Test();
9 Test();
10 ?>
1
2
PHP には、変数変数という非常に興味深い機能もあります。 、変数の変数名を動的に設定して使用できます。
以下の例を見てください:
1 php
3 $hello " ;
4 echo $a . " $a ;
実際に出力された結果は hello, world です。 $a の値は hello であるため、$$a は実際には $hello です。
変数がたくさんあります。定数を見てみましょう。
定数
PHP 定数の前に const が付きますか?見てみましょう。
いいえ。 PHP では、次のように定義する必要があります。
bool define ( string name,mixed value [, bool case_insensitive] )
name は定数の名前、value は定数の値です。 case_insensitive] では大文字と小文字が区別されます。デフォルトは機密です。例:
1 php
2 define ( " CONSTANT " , " Hello world. " );
3 echo CONSTANT ; // "Hello world" を出力します。
4 echo Constant ;通知を発行します
5
6 define ( " GREETING " , " Hello you. " , true );
7 echo GREETING; // 「こんにちは。」 を出力します。 9
10 ?>
定数と変数は異なります:
定数の前にドル記号 ($) はありません。
定数は、代入ステートメントではなく、define() 関数でのみ定義できます。
定数は、ルールに従ってどこでも定義およびアクセスできる変数スコープを無視できます。
一度定義された定数は、再定義または未定義にすることはできません
定数の値はスカラーのみです。