中文
HTML から切り離す
HTML から切り離す 3 つの方法と「PHP コード モード」を追加します
例 5-1. HTML から切り離すメソッド
1. これは最も単純な SGML 処理命令です。 "); ?>
2.
3.
echo ("一部のエディター (FrontPage など) は処理命令を好みません");
;
4. <% echo("PHP 3.0.4 では、オプションで ASP- style tags"); %>
ステートメントの切り離し方法
ステートメントの切り離し方法はCやPERLと同じです-----各ステートメントの終了にはセミコロン(;)を使用します。
終了タグ (?>) は説明の終わりを意味するため、次の 2 つの文は同等です。
echo "This is a test"
?>
変数の型
PHP は次の変数の型をサポートしています:
integer: 整数
double: 倍精度数値
string: 文字列
array: キュー配列
object: オブジェクト
pdfdoc (PDF サポートが有効な場合のみ): PDF テキスト (PDF サポートが有効になった場合のみ有効)
pdfinfo (PDF サポートが有効な場合のみ): PDF 情報 (PDF サポートが有効になった場合のみ有効)
これらの変数のタイプは次のとおりです。通常は、プログラマによって設定されません。具体的には、使用する型のコンテキストに基づいて、実行時に PHP によって設定されます。
変数を指定した型に強制的に変換したい場合は、変数に対して「キャスト」操作を実行するか、関数「settype()」を使用することもできます。
これらの変数は、その時の変数の型に応じて、特定の状況下で異なるコントローラーによって使用される可能性があることに注意してください。詳細については、「タイプジャグリング」セクションを参照してください。
変数の初期化
PHP で変数を初期化するには、単純に値を代入するだけです。ほとんどの型の場合、これは非常に簡単ですが、「Array (配列)」および「Objects (オブジェクト)」型の場合は、少し異なるアプローチが必要です。
配列の初期化
配列は、「array()」構造体を使用しながら、次の方法で初期化できます (これについては、「配列関数の説明セクション」で説明します)。配列変数は、ラベルのない配列変数の値を指定するだけで、配列変数の最後の要素に値を追加します。 [0] = "Jill"
$names[] = "Jack"; // $names[1] = "Jack"
C や Perl と同様、配列要素の開始数は 1 ではなく 0 です。
オブジェクト変数の初期化
オブジェクト変数を初期化するには、次の例に示す宣言メソッドを使用します。 }
$bar = new foo;
$bar -> do_foo ();
変数のアクティブ スコープ
すべての PHP 変数は、それが定義されているコンテキストに限定されます。ただし、ユーザー定義関数では、ローカル関数スコープの概念が導入されます。この関数で使用される変数は、デフォルトで関数のローカル関数スコープに制限されます。例:
。 $a = 1; /* グローバル スコープ */
Function Test () {
echo $a; /* ローカル スコープ変数への参照 */ }
このスクリプトは何も生成しませんこれは、変数 "$a" の宣言がローカル変換に送信され、この変数にはアクティブ スコープ内の値が割り当てられていないためです。これは、C 言語のグローバル変数とは若干異なることがわかります。関数内で特に指定しない限り、自動的に使用可能に設定されます。グローバル変数の値を誤って変更する可能性があるため、PHP では、グローバル変数を関数内で宣言する必要があります。この関数で使用する例は次のとおりです:
$a = 1;
$b = 2; b;
}
エコー $b;上記のスクリプトでは「3」が出力されます。グローバル変数 $a と $b は関数内で宣言されており、これら 2 つの変数への参照はすべてグローバル変数に割り当てられます。関数が操作できるグローバル変数の数に制限はありません。
グローバル変数を受け入れる 2 番目の方法は、PHP の特別な定義配列 $GLOBALS を使用することです。 例は次のとおりです。
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
echo $b;これは、変数の名前として「global」を使用する連想配列であり、グローバル変数は変数配列の要素の値として使用されます。
変数のスコープに関するもう 1 つの重要な機能は、「静的変数」です。静的変数はローカル関数のアクティブなスコープ内にのみ存在しますが、プログラムがこのスコープを離れてもその値は失われません。以下の例を参照してください:
Function Test () {
$a = 0;
echo $a;
}
; call $a を 0 に設定しても「0」が出力されるため、ほとんど効果がありません。式「$a++」は変数の値をインクリメントしますが、変数 $a は関数が終了するたびに消えます。現在の計算を失わずにカウント関数を使用するには、次の例に示すように、変数 $a を static に設定します。 a;
$a++;
}
これで、Test() 関数が呼び出されるたびに、変数 $a とそれがインクリメントされた後の値が出力されます。
関数を再帰的に呼び出す場合、静的変数の使用は非常に重要な方法です。再帰関数は、それ自体を呼び出すことができる関数です。再帰関数を作成するときは、考えられるループ定義に注意する必要があります。この再帰的なプロセスを中断する適切な方法が必要です。次の例は 10 回再帰します。
Function Test () {
static $count = 0;
echo $count; ); }
$count--;
}
変数変数
変数変数を使用すると非常に便利な場合があります。つまり、変数の名前は動的に設定され、使用されます。通常の変数は次の宣言を使用します:
$a = "hello";
変化する変数は変数の値を取得し、それを変数の名前として扱います。上記の例では、変数名に $ を 2 つ加えたものなどを使用して「hello」を使用できます。
$$a = "world";
この時点で、$a の内容は "hello"、$hello の値は "world" として 2 つの変数が定義されています。 」。したがって、次のステートメント:
echo "$a ${$a}";
は、次とまったく同じ出力を生成します。
echo "$a $hello"; : "hello world"
配列内の変数の変更を使用するには、あいまいな問題を解決する必要があります。つまり、「$$a[1]」と記述すると、パーサーは、$a[1] を変数として使用するか、$$a を変数として使用するかを知る必要があるため、インデックス "[1] 】」と曖昧さが生じる可能性があります。このあいまいさを解決するための構文は次のとおりです: "${$a[1]}" または "${$a}[1]" を使用します (上記の 2 番目のケースの場合)。
外部 PHP 変数
HTML フォーム (GET および POST)
フォームが PHP スクリプトに送信されると、フォームから取得された変数は、PHP スクリプトによって使用できるように自動的に設定されます。次の例を参照してください:
例 5-2. 単純なフォーム変数
送信されると、PHP は変数 "$name" を作成します。フォームの「名前」に入力します。
PHP はフォーム変数のコンテキストを配置する方法も知っていますが、それは一度だけです。たとえば、一連の変数を同時に宣言したり、この機能を使用して複数の選択入力から値を取得したりできます:
例 5-3. より複雑なフォーム変数
PHP の track_var 機能がオンになっている場合、それに関する構造設定または は、POST または GET モードによる変数の送信でグローバル連想配列の使用を認識します。 「$HTTP_POST_VARS」と「$HTTP_GET_VARS」が適切です。
グラフィック送信変数名
フォームを送信するとき、標準のラベル付き送信ボタンの代わりに画像を使用することができます。例:
ユーザーが画像上の任意の場所をクリックすると、対応するフォームが 2 つの追加変数 (sub_x と sub_y) とともに使用されます。サーバー。これらには、ユーザーがグラフィックをクリックした場所に関する情報が含まれています。これにはブラウザから送信された実際の変数名 (アンダースコアも含む) が含まれますが、PHP はそれを下線付きの形式に自動的に変換します。
HTTP Cookie
PHP は、Netscape の仕様で定義されている HTTP Cookie の使用をもちろんサポートしています。 Cookie は、ユーザーを追跡および認証するためにリモート ブラウザーにデータを保存するデバイスです。 SetCookie() 関数を使用して Cookie を設定できます。 Cookie は HTTP ヘッダーの一部であるため、ブラウザに出力される前に SetCookie プログラムを呼び出す必要があります。これは、Header() 関数の設定に似ています。サーバーからユーザーに送信された Cookie は、GET および POST モードを使用したデータと同様に、自動的に PHP 変数に変換されます。
1 つの Cookie に複数の値を割り当てたい場合は、Cookie 名の後に「[ ]」を追加するだけです。例:
SetCookie ("MyCookie[]", "Testing", time()+3600);
ブラウザ上のドメインまたはパスが異なる場合、Cookie が使用されることに注意してください。以前の Cookie を同じ名前に置き換えます。したがって、買い物リスト アプリケーションの場合は、次のようにカウンターを保持し、それを Cookie 経由で渡すことができます。 (" Count", $Count, time()+3600);
SetCookie ("Cart[$Count]", $item, time()+3600);
環境変数
PHPは環境変数を自動的に使用します。 PHP の Common 変数としては、次のような例があります。
echo $HOME; /* 設定されている場合、HOME 環境変数を表示します */
情報は GET、Post、Cookie およびその他のメカニズムとともに渡されるため、PHP 変数が自動的に作成されることがあります。外部環境から変数を正確に読み取り、正しいバージョンを使用していることを確認することが最善です。 getenv() 関数はこの仕事を行います。 putenv() 関数を使用して環境変数を設定することもできます。
サーバー設定手順
変数の型変更 (ジャグリング)
PHP では、宣言された変数で変数の型を指定する必要はありません (またはサポートしません)。変数の型は、変数が使用されるコンテキストによって決まります。つまり、文字列値を変数 var に代入すると、var は文字列変数になります。 var に整数を代入すると、整数変数になります。
PHP が変数の型を自動的に変換する例は、加算演算子「+」です。いずれかのオペランドが double の場合、すべてのオペランドが double として評価され、結果も double になります。それ以外の場合、オペランドは整数とみなされ、結果は整数になります。これは各オペランド自体の変数タイプには影響せず、唯一の変更は計算中のオペランドの処理方法であることに注意してください。
$foo = "0"; // $foo は文字列、値は "0" (ASCII 48)
$foo++; // $foo は文字列、値は "1" (ASCII 49)
$foo += 1; // $foo は整数 (2) になります
$foo = $foo + 1.3; // $foo は倍精度 (3.3) になります
$foo = 5 + "10 Little Piggies"; // $foo は整数 (15) になります
$foo = 5 + " 10 Small Pigs"; // $foo は整数 (15)
上記の例の最後の 2 つの式が少し奇妙に見える場合は、「文字列変換」セクションを参照してください。
変数を固定型として強制的に評価したい場合は、「キャスト」セクションを参照してください。変数の型を変更したい場合は、関数「settype()」の説明を参照してください。
変数の型の決定
PHP は変数自体の型を決定し、通常は必要に応じて変換するため、特定の変数の型が常に明らかであるとは限りません。 PHP には、この変数の型を調べる関数が含まれています。これらの関数は、gettype()、is_long()、is_double()、is_string()、is_array()、および is_object() です。
PHP の型キャストは C の場合と同じです。 ほぼ同じです。 : 強制する変数の前に必要な型を括弧内に記述します。
$foo = 10; // $foo は整数です
$bar = (double) $foo; // $bar は倍精度数値です
次の強制メソッドが許可されます:
(int) integer) – 整数に強制変換
(real)、(double)、(float) – double に強制変換
(string) – 文字列に強制変換
(array) – 配列
(object) に強制変換– Forced to object
括弧内ではタブとスペースが許可されるため、次のステートメントは同等であることに注意してください:
$foo = (int) $bar;変換
文字列が数値として計算される場合、その結果と型は以下のように決定されます。
この文字列に文字「.」、「e」、「E」が含まれる場合は double 型の変数として扱われ、それ以外の場合は整数として扱われます。
この文字列の値はプレフィックスによって決まります。文字列が有効な数値データで始まる場合、その数値データが文字列の評価の対象となる値となります。それ以外の場合、値はゼロです。有効な数値データは次の表記に従い、その後に 1 つ以上の数字 (小数点を含む場合があります)、その後にオプションの指数が続きます。指数は、1 つ以上の数字の後に「e」または「E」が続くことで形成されます。
$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 は整数 (11) です。文字「e」
詳細については、Unix マニュアルの strtod(3) セクションを参照してください。
配列操作
PHP はスカラー配列と連想配列の両方をサポートしています。実際、両者に違いはありません。 list() 関数または array() 関数を使用して配列を作成することも、各配列要素の値を明示的に設定することもできます。
$a[0] = "abc";
$a[1] = "def";
$b["foo"] = 13;
に値を追加して配列を作成することもできます。配列 。
$a[] = "hello"; // $a[2] == "hello"
$a[] = "world"; // $a[3] == "world"
asort()、arsort()、ksort()、rsort()、sort()、uasort()、usort()、および ksort() 関数を使用して並べ替えます。どの関数を使用するかは、必要な並べ替えによって異なります。タイプ。
cunt() 関数を使用して、配列内の要素の数をカウントできます。
next() 関数と prev() 関数を使用して配列を走査できます。配列を反復処理するもう 1 つの一般的な方法は、 each() 関数を使用することです。