Contents


PHP可変型
PHPプログラムの途中で情報を格納する主な方法として変数を使うことです。
ここでは、PHPの変数について知っておくべき最も重要なことがあります。
- PHPのすべての変数は、ドル記号($)で始まります。
- 変数の値は、直前の割り当ての値です。
- 変数は=演算子で割り当てられ、変数は左側に、式は右側で評価されます。
- 代入の前に変数を宣言することはできますが、必要はありません。
- PHPの変数には、組み込み型がありません。変数は、数値または文字列の格納に使用されるかどうかを事前には認識していません。
- 割り当てられる前に使用される変数にはデフォルト値があります。
- PHPは、必要に応じてタイプを自動的に別のタイプに変換するのに適しています。
- PHPには、変数を構築するために使用する合計8つのデータ型があります。
- 整数 – 4195のような小数点のない整数です。
- Doublesは3.14159や49.1のような浮動小数点数です。
- ブール値 – 真または偽のうちの2つの値しかありません。
- NULL – 1つの値しか持たない特別な型です:NULL。
- 文字列 – ‘PHPは文字列操作をサポートしている’のような文字列です。
- 配列 – 他の値の名前付きインデックス付きコレクションです。
- オブジェクト – プログラマー定義のクラスのインスタンスで、クラスに固有の他の種類の値と関数の両方をパッケージ化できます。
- リソース – PHP外部のリソース(データベース接続など)への参照を保持する特殊変数です。
最初の5つは単純な型で、次の2つ(配列とオブジェクト)は複合型です。複合型は任意の型の他の任意の値をパッケージ化できますが、単純型はできません。
この章では単純なデータ型についてのみ説明します。配列とオブジェクトについて別々に説明します。
整数
4195のような小数点なしの整数です。
$int_var = 12345; $another_int = -12345 + 12345;
整数は、10進数(10進数)、8進数(8進数)、および16進数(16進数)の形式で指定できます。10進形式がデフォルトであり、8進整数は先頭の0で指定され、16進数は先頭に0xが付きます。
ダブルス
3.14159みたいな数値、
<?php $many = 2.2888800; $many_2 = 2.2111200; $few = $many + $many_2; print("$many + $many_2 = $few <br>"); ?>
こうなる
2.28888 + 2.21112 = 4.5
ブール
trueまたはfalseの2つの値しか指定できません。
if (TRUE) print("This will always print<br>"); else print("This will never print<br>");
ブーリアンとして他の型を解釈する
ブール型ではない値の「真理」を決定するための規則は次のとおりです。
- 値が数値の場合は、正確にゼロに等しい場合はfalse、そうでない場合はtrueです。
- 値が文字列の場合、文字列が空(ゼロ文字)か文字列 “0”の場合はfalse、そうでない場合はtrueです。
- NULL型の値は常にfalseです。
- 値が配列の場合は、他の値がない場合はfalse、そうでない場合はtrueです。オブジェクトの場合、値を含むとは、値が割り当てられたメンバー変数を持つことを意味します。
- 有効なリソースはtrueです(成功したときにリソースを返す関数もありますが、失敗した場合はFALSEを返します)。
- ブール値としてdoubleを使用しないでください。
次の各変数は、ブール値コンテキストで使用されるときに、その名前に真理値が埋め込まれています。
$true_num = 3 + 0.14159; $true_str = "Tried and true" $true_array[49] = "An array element"; $false_array = array(); $false_null = NULL; $false_num = 999 - 999; $false_str = "";
ヌル
NULLは、1つの値(NULL)しか持たない特別な型です。変数にNULL値を与えるには
$my_var = NULL;
特別な定数NULLは大文字で表記されますが、実際には大文字と小文字は区別されません。あなたはちょうど同じように入力することができます –
$my_var = null;
NULLを割り当てられた変数には、次のプロパティがあります。
- ブール値コンテキストではFALSEと評価されます。
- IsSet()関数でテストするとFALSEを返します。
文字列
$string_1 = "This is a string in double quotes"; $string_2 = 'This is a somewhat longer, singly quoted string'; $string_39 = "This string has thirty-nine characters"; $string_0 = ""; // a string with zero characters
一重引用符で囲まれた文字列はほぼ文字通りに扱われますが
、二重引用符で囲まれた文字列は変数を値に置き換え
<?php $variable = "name"; $literally = 'My $variable will not print!'; print($literally); print "<br>"; $literally = "My $variable will print!"; print($literally); ?>
これにより、次の結果が得られます。
My $variable will not print!\n My name will print
文字列の長さには人為的な制限はありません – 利用可能なメモリの範囲内では、任意に長い文字列を作ることができなければなりません。
二重引用符で区切られた文字列( “this”のように)は、PHPによって次の2つの方法で前処理されます。
- バックスラッシュ(\)で始まる特定の文字シーケンスは、特殊文字
- 変数名($で始まる)は、値の文字列表現に置き換えられます。
エスケープシーケンスの置換は、
- \ nは改行文字に置き換えられます
- \ rは改行文字に置き換えられます
- \ tはタブ文字に置き換えられます
- \ $はドル記号自体($)に置き換えられます
- \ “は単一の二重引用符(”)で置き換えられます
- \\は単一のバックスラッシュ(\)に置き換えられます。
here document
here documentを使用して、複数の行を単一の文字列変数に割り当てることができます。
<?php $channel =<<<_XML_ <channel> <title>What's For Dinner</title> <link>http://menu.example.com/ </link> <description>Choose what to eat tonight.</description> </channel> _XML_; echo <<<END This uses the "here document" syntax to output multiple lines with variable interpolation. Note that the here document terminator must appear on a line with just a semicolon. no extra whitespace! END; print $channel; ?>
これにより、次の結果が得られます。
This uses the "here document" syntax to output
multiple lines with variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
<channel>
<title>What's For Dinner<title>
<link>http://menu.example.com/<link>
<description>Choose what to eat tonight.</description>
可変スコープ
スコープは、変数が宣言されているプログラムに対する可用性の範囲として定義できます。PHP変数は、4つのスコープタイプの1つになります。
- ローカル変数関数で宣言された変数はローカル変数とみなされます。つまり、その関数でのみ参照できます。その関数以外の代入は、その関数に含まれるものとはまったく異なる変数とみなされます。
<?php $x = 4; function assignx () { $x = 0; print "\$x inside function is $x. <br />"; } assignx(); print "\$x outside of function is $x. <br />"; ?>
これにより、次の結果が生成されます。
$x inside function is 0. $x outside of function is 4.
- 関数のパラメータ
- 関数のパラメータは、関数名の後ろに括弧で囲んで宣言します。
<?php // 10を10にかけて戻す。 function multiply ($value) { $value = $value * 10; return $value; } $retval = multiply (10); Print "Return value is $retval\n"; ?>
これにより、次の結果が生成されます。
Return value is 100
- グローバル変数
- ローカル変数とは対照的に、グローバル変数はプログラムのどの部分でもアクセスできます。ただし、変更するには、グローバル変数を変更する関数内でグローバル変数をグローバルに明示的に宣言する必要があります
- グローバルとして認識されるべき変数の前にキーワードGLOBALを置くことによって、実行されます。このキーワードを既存の変数の前に置くと、PHPはその名前を持つ変数を使用するように指示します。
<?php $somevar = 15; function addit() { GLOBAL $somevar; $somevar++; print "Somevar is $somevar"; } addit(); ?>
こうなる
Somevar is 16
- 静的変数
- 変数名の前にキーワードSTATICを置くだけで、変数を静的に宣言することができます。
<?php function keep_track() { STATIC $count = 0; $count++; print $count; print "<br />"; } keep_track(); keep_track(); keep_track(); ?>
これにより、次の結果が生成されます。
1 2 3
変数の名前付け
変数の命名規則は –
- 変数名は、文字またはアンダースコア文字で始まる必要があります。
- 変数名は数字、文字、下線で構成できますが、+、 – 、%、(、)などの文字は使用できません。&など
変数にはサイズ制限はありません。