ホームページ  >  記事  >  バックエンド開発  >  変数 - PHP マニュアルのメモ

変数 - PHP マニュアルのメモ

WBOY
WBOYオリジナル
2016-08-08 09:29:28856ブラウズ

基本

PHP の変数は、ドル記号とそれに続く変数名で表されます。変数名では大文字と小文字が区別され、漢字も使用できる場合があります。

変数はデフォルトで常に値によって割り当てられます。 PHP では、変数に値を代入する別の方法である参照代入も提供しています。これは、新しい変数が単に元の変数を参照する (つまり、「エイリアス」または「ポイントする」) ことを意味します。新しい変数を変更すると元の変数に影響し、その逆も同様です。参照代入を使用するには、代入する変数 (ソース変数) にアンパサンドを追加するだけです。参照によって割り当てられるのは名前付き変数のみであることに注意してください。

事前定義された変数

PHP には多数の事前定義変数があり、その多くはサーバーに依存しますが、一部の事前定義変数はコマンドラインから実行すると有効になりません。

PHP は、事前に定義された配列の追加セットを提供します。これらの配列変数には、Web サーバー (利用可能な場合)、実行環境、およびユーザー入力からのデータが含まれます。これらは、多くの場合、オートグローバルまたはスーパーグローバルと呼ばれます。

変数スコープ

ここでの変数スコープは、変数が定義されているコンテキスト、つまり有効スコープを指します。変数のスコープには、include および require によって導入されたファイルが含まれます。

PHP のグローバル変数は C 言語とは少し異なります。C 言語では、ローカル変数によってオーバーライドされない限り、グローバル変数は関数内で自動的に有効になります。 PHP のグローバル変数を関数で使用する場合は、グローバル変数を宣言する必要があります。

リーリー

b.inc内容は以下の通りです

リーリー

プログラムは正常に出力できます hello,但是被注释掉的test()変数$aが未定義のため正常に解析できません。

グローバル変数を使用する

関数内でグローバル変数を使用したい場合は、次の 2 つの方法を使用できます。

  1. グローバルキーワード
リーリー

関数内でグローバル変数を宣言すると、変数へのすべての参照はそのグローバル バージョンを指すようになります。

  1. $GLOBALS スーパーグローバル変数配列
リーリー

使用法はグローバルキーワードと似ています。

静的変数

静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。また、初期化されるのは宣言時に一度だけであり、関数が呼び出されるたびに静的関数の値が上書きされることはありません。

宣言内の式の結果を静的変数に代入すると、静的宣言はコンパイル時に解析エラーが発生します。

リーリー

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_xsub_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教程有兴趣的朋友有所帮助。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。