基本
PHP の変数は、ドル記号とそれに続く変数名で表されます。変数名では大文字と小文字が区別され、漢字も使用できる場合があります。
変数はデフォルトで常に値によって割り当てられます。 PHP では、変数に値を代入する別の方法である参照代入も提供しています。これは、新しい変数が単に元の変数を参照する (つまり、「エイリアス」または「ポイントする」) ことを意味します。新しい変数を変更すると元の変数に影響し、その逆も同様です。参照代入を使用するには、代入する変数 (ソース変数) にアンパサンドを追加するだけです。参照によって割り当てられるのは名前付き変数のみであることに注意してください。
事前定義された変数
PHP には多数の事前定義変数があり、その多くはサーバーに依存しますが、一部の事前定義変数はコマンドラインから実行すると有効になりません。
PHP は、事前に定義された配列の追加セットを提供します。これらの配列変数には、Web サーバー (利用可能な場合)、実行環境、およびユーザー入力からのデータが含まれます。これらは、多くの場合、オートグローバルまたはスーパーグローバルと呼ばれます。
変数スコープ
ここでの変数スコープは、変数が定義されているコンテキスト、つまり有効スコープを指します。変数のスコープには、include および require によって導入されたファイルが含まれます。
PHP のグローバル変数は C 言語とは少し異なります。C 言語では、ローカル変数によってオーバーライドされない限り、グローバル変数は関数内で自動的に有効になります。 PHP のグローバル変数を関数で使用する場合は、グローバル変数を宣言する必要があります。
リーリーb.inc
内容は以下の通りです
プログラムは正常に出力できます hello
,但是被注释掉的test()
変数$aが未定義のため正常に解析できません。
グローバル変数を使用する
関数内でグローバル変数を使用したい場合は、次の 2 つの方法を使用できます。
関数内でグローバル変数を宣言すると、変数へのすべての参照はそのグローバル バージョンを指すようになります。
使用法はグローバルキーワードと似ています。
静的変数
静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。また、初期化されるのは宣言時に一度だけであり、関数が呼び出されるたびに静的関数の値が上書きされることはありません。
宣言内の式の結果を静的変数に代入すると、静的宣言はコンパイル時に解析エラーが発生します。
リーリーC 言語の static と同様に、次の C コードでも 0 から 9 までの 10 個の数値を順番に出力できます。
リーリー変数の静的定義とグローバル定義は参照によって実装されます。
変数変数
変数変数は PHP 言語における特殊な使用法であり、他の言語にも存在するかどうかはわかりません。
要するに変光変数とは、変光変数が通常の変数の値を変光変数の変数名として取得することを意味します。
リーリー可変変数が配列で使用される場合、あいまいさが生じる可能性があります。例えば$$a[1]
と書くとコンパイラはエラーを報告しますので、表現したい意味を以下の2つの方法に置き換える必要があります。
${$a[1]}
$a[1] を変数として
${$a}[1]
$$a を変数として、変数内のインデックス 1 の値を取り出します。
フォーム変数
フォームが PHP スクリプトに送信されると、フォーム内の情報がスクリプト内で自動的に利用可能になり、$_GET[]
、$_POST[]
和$_REQUEST[]
経由でアクセスできるようになります。
変数名のドットとスペースはアンダースコアに変換されることに注意してください。たとえば、<input name="a.b">
变成了$_REQUEST["a_b"]
、次の例はフォームでの識別子の使用を示しています。
フォーム処理ファイルprocess.php
。
ピリオドは PHP 変数名では有効な文字ではないため、出力は次のようになります。
リーリーmagic_quotes_gpc
配置指令影响到get/post/cooie的值,这个特性已经废弃移除,输入中的单引号、双引号、反斜杠和NULL字符都不会被转义。若需要转义可使用addslashes()
,若需要反引用一个引用的字符串需要使用stripslashes()
。
PHP はフォーム変数のコンテキストで配列も理解します。以下の例では、より複雑なフォーム変数を使用し、フォームを自身にポストし、送信時にデータを表示します。
リーリーヒアドキュメントに複雑な変数を含める場合は、特に注意してください。$_SERVER['PHP_SELF']
中括弧なしで上記のコードを実行すると、実行時にエラーが発生します。
画像送信
フォームを送信するとき、標準の送信ボタンの代わりに画像を使用できます。初めて使ったときは本当に魔法のようでした。
リーリー上記のプログラムでは、ユーザーが画像内のどこかをクリックすると、フォームがサーバーに送信され、ユーザーがクリックした画像の座標を含む 2 つの変数 sub_x
和sub_y
が追加されます。
クッキー
PHP は setcookie()
関数を使用して Cookie を設定できます。Cookie は HTTP ヘッダーの一部であるため、ブラウザに出力を送信する前に呼び出す必要があります。
関連するCookieの使用は次のとおりです。
<code><?php if(isset($_COOKIE['cnt'])) { $cnt = $_COOKIE['cnt'] + 1; echo $cnt; } else { $cnt = 1; } setcookie('cnt', $cnt, time() + 3600);</code>
cookie数据在相应的cookie数组中可用,如果将多个值赋给一个cookie变量,必须将其赋成数组。
(全文完)
以上就介绍了变量 - PHP手册笔记,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。