ホームページ >バックエンド開発 >PHPチュートリアル >PHP 学習用の PHP 変数_PHP チュートリアル
PHP 変数
PHP3 は次のタイプの変数をサポートしています:
(1)、内部変数
主に整数、浮動小数点数、文字列、配列、オブジェクトが含まれます。
1 変数を初期化する
PHP で変数を初期化するには、単純に値を割り当てるだけです。ほとんどのタイプでは、これが最も簡単です。配列とオブジェクトの場合は、他のメソッドも使用できます。
2 配列の初期化
配列は、一連の連続値を使用するか、array() 関数を使用して構築する 2 つの方法のいずれかを使用して割り当てることができます (「配列関数」セクションを参照)。
配列に連続した値を追加するには、添え字なしで値を配列変数に割り当てるだけです。この値は、配列の最後の要素として配列に追加されます。
例: $names[] = "Jill"; // $names[0] = "Jack" // $names[1] = "Jack" c や perl と同様、
配列の添字も 0 から始まります。
3 オブジェクトの初期化
オブジェクトを初期化するには、new ステートメントを使用してこの型の変数を作成する必要があります。
class foo {
function do_foo() {
echo "Doing foo."; } $bar = new foo;
変数のスコープはその有効範囲です。ほとんどの PHP 変数にはスコープが 1 つだけあります。ユーザー定義関数でローカル変数スコープを使用します。
関数内で使用される変数は、デフォルトでローカル変数に設定されます。例: $a=1; /* グローバル スコープ */
Function Test() { echo $a; /* ローカル スコープ変数への参照 */ }
Test();ローカル変数 $a を出力しますが、関数内の $a には値が割り当てられていません。
これが C 言語とは少し異なることに気づくかもしれません。C では、ローカル変数によって上書きされない限り、関数内でグローバル変数を直接参照できます。
これにより、人々は気づかずにグローバル変数の値を変更することが可能になります。 PHP では、グローバル変数は関数内で明示的に使用する必要があります。
例: $a=1; $b=2; Function Sum() { $b = $a + $b; とすると、「3」が出力されます。
$a と $b を関数内でグローバル変数として宣言すると、必要なすべての変数がグローバル世界を参照します。関数が操作できるグローバル変数の数に制限はありません。
スコープのもう 1 つの注目すべき側面は、静的変数です。
静的変数はローカル関数内に存在しますが、プログラムが関数を終了してもその値は失われません。
次の例を考えてみましょう: Function Test() { $a=0; echo $a; $a++; }
この関数は呼び出されるたびに、最初に $a を 0 に設定してから "0" を出力するため、役に立ちません。 変数
$a は関数呼び出しの終了後に解放されるため、$a++ の自己インクリメントは効果がありません。現在のカウント結果を失わずにカウント プログラムを効果的にカウントするには、 $a を静的変数として宣言する必要があります:
static $a=0; echo $a; $a++; Test() 関数が呼び出されると、$a の値が出力され、その値が増加します。 再帰関数を使用する場合、静的変数は不可欠です。
再帰関数とは、それ自体を呼び出す関数です。
反復回数が不確実であるため、再帰関数を作成するときは十分に注意してください。再帰プロセスを終了するための十分な条件が揃っていることを確認する必要があります。 10 までカウントする単純な再帰関数:
Function Test() { static $count=0; $count++;
echo $count; if($count < 10) { Test(); }
(二)変数 場合によっては、変数変数名を使用する方が便利です。つまり、動的に割り当てて使用できる変数名です。
通常の変数の代入文は次のようになります: $a = "hello"; 動的変数は変数の値を新しい変数の名前として参照します。
上記の例では、$を2つ付けることでhelloを変数名として使用することができます。
例: $$a = "world"; この時点で、$a の内容が「hello」、$hello の内容が「world」という 2 つの変数が定義され、PHP シンボル ツリーに格納されます。
したがって、文 echo "$a ${$a}"; の表示結果は、 echo "$a $hello"; と全く同じになります。 (3) PHP 外部変数 1. HTML 形式 (GET および POST)
フォームが PHP3 スクリプトに送信されると、PHP はフォーム内の変数を自動的に取得します。例:
名前:2. IMAGE SUBMIT 変数名
フォームを送信するとき、次のマークアップを使用して、標準の送信ボタンを画像に置き換えることができます: ユーザーが画像をクリックすると、
2 つの追加変数 sub_x と sub_y が、優れたフォーム。これには、ユーザーがグラフ上でクリックした場所の座標が含まれます。
経験豊富な人は、ブラウザによって実際に送信される名前にアンダースコアではなくピリオドが含まれていることに気づくかもしれませんが、PHP はピリオドを自動的にアンダースコアに変換します。
3、HTTP Cookie
PHP は HTTP Cookie をサポートしています。 Cookie は、ユーザーとの連絡を維持したり、ユーザーの ID を認証したりするために、クライアントのブラウザにデータを保存します。
setcookie() 関数を使用して Cookie を設定できます。 Cookie は HTTP リクエスト ヘッダーの一部であるため、出力データがユーザーのブラウザに返される前に SetCookie() 関数を呼び出す必要があります。これは、Header() 関数の制限と似ています。クライアントから返された Cookie は、GET メソッドや POST メソッドのデータと同様に、標準の PHP 変数に自動的に変換されます。
Cookie に複数の値を設定する場合は、Cookie の名前に [] を追加します。
例: SetCookie("MyCookie[]","Testing", time()+3600);
注:新しい Cookie は、パスまたはドメインが異なる場合を除き、ブラウザ内の同じ名前の既存の Cookie を上書きします。
4. 環境変数
PHP は環境変数を通常の変数に自動的に変換します。
echo $HOME; /* 設定されている場合、HOME 環境変数を表示します。 */
GET、POST、および Cookie 構造からの情報は自動的に PHP 変数に変換されますが、確実に環境変数を読み取ることが最善です。正しい値を取得します。
これには getenv() 関数を使用します。変数は putenv() 関数を介して設定することもできます。
変数の型変換
PHP は変数を定義するときに明示的な型宣言を必要としません (またサポートしません)。変数の型はその値の型によって異なります。
言い換えると、変数 var に文字列値を代入すると、var は文字列変数になります。 var に整数値を代入すると、それは整変数になります。
PHP の自動型変換の例は、加算演算子「+」です。いずれかのオペランドが double 型である場合、すべてのオペランドは double 型として計算され、結果も double 型になります。それ以外の場合、すべてのオペランドは整数型として計算され、結果も整数型になります。注: オペランド自体の型は変わりません;
型変換は計算中にのみ行われます $foo = "0"; // $foo は文字列 (ASCII 48) // $foo は文字列 "1" " (ASCII 49)
$foo += 1; // $foo は整数 (2) $foo = $foo + 1.3; // $foo は倍精度 (3.3)
$foo = 5 + "10 Little Piggies"; // $foo は double (15) $foo = 5 + "10 Small Pigs"; // $foo は整数 (15)
変数の型を変更するには、settype を使用することもできます() 関数。
1. 強制的な型変換
PHP での強制的な型変換は C の場合と同じで、型を入力する必要がある変数の前に目的の型名を括弧内に記述します。
$foo = 10; // $foo は整数 $bar = (double) $foo; // $bar は double
許可されるキャストは次のとおりです: (int), (integer) - integer へのキャスト (real) , (double)、(float) - double にキャスト
(string) - string にキャスト (array) - 配列にキャスト (object) - オブジェクトにキャスト
注: 括弧にはタブまたはスペースを含めることができ、次の関数は計算になります。 : $foo = (int) $bar; $foo = (int) $bar;
2. 文字列変換
文字列を数値型として計算した場合、結果の値と型は次のように決まります。
文字列に「.」、「e」、「E」の文字が含まれる場合、double 型として計算されます。それ以外の場合は、整数型として計算されます。
この値は文字列の先頭から計算されます。文字列が有効な数値の場合はこの値が使用され、それ以外の場合は値は 0 になります。
有効な数値は、符号ビット (オプション) の後に 1 つ以上の数字 (小数点を含むこともできます)、その後にオプションの指数が続きます。
指数は、「e」または「E」の後に 1 つ以上の数字が続くものです。 $foo = 1 + "10.5"; // $foo は倍精度 (11.5)
$foo = 1 + "-1.3e3"; // $foo は倍精度 (-1299) $foo = 1 + " bob- 1.3e3"; // $foo は倍精度 (1)
$foo = 1 + "bob3"; // $foo は整数 (1) $foo = 1 + "10 Small Pigs"; / / $foo は整数 (11)
$foo = 1 + "10 Little Piggies" // $foo は double (11) です。