PHPの基本構文

■ PHPの基本要素

PHPからHTMLを出力するには、printまたはechoという関数を使います。

print "abc" ;

echo "abc" ;

echoの場合、カンマで区切って複数の値を同時に出力することができます。

echo "abc", "def" ;

PHPでは関数を記述した行の最後に;(セミコロン)が必要になります。

echo "" ;

PHPのコメントは次の3つの方法で記述することができます。

コメント方法
説明
# コメント 行の先頭の#。この行はコメントになる
// コメント //以降の文字列はコメントになる
/* コメント */ /*と*/の間の文字列はコメントになる

PHPは言語のキーワードや関数名の大文字・小文字を区別しません。例えば次の2つは同じ意味になります。

echo "test" ;

ECHO "test" ;

ただし、変数名の大文字・小文字は区別されます。例えば次の2つは別々の変数を意味します。

$TESTVAL

$testval

※ PHPの日本語オンラインマニュアルは「http://www.php.net/manual/ja/」にあります。

■ PHPの変数

変数はプログラムを作成する上でなんらかの変化する値を保持する入れ物のことです。PHPで変数を使う場合は、変数名の前に$(ダラー)をつける事で変数年t絵認識されます、たとえばNAMEという変数を作成するには次のような一文を書きます。

$NAME = "TSUMIKI" ;

また、変数に格納した値を出力するには次のようにします

echo $NAME ;   //TSUMIKIが出力される

PHPでは、C言語のように変数の宣言を行う必要はありません。逆に宣言を行うことができません。プログラムの先頭で使う変酢を明示しておきたい場合は、次のように変数の初期化を書いておけばよいでしょう。

$NAME = "" ;

phpの変数にはint(整数)、double(浮動小数点)、string(文字列)、配列などの型がありますが、変数の型は値の代入時に自動的に決定されます。例えば

$NAME = "TSUMIKI" ;

と記述すると変数$NAMEは文字列形となり、

$NAME = 123 ;

と記述すると、変数$NAMEは数値型となります。

明示的に変数の型を指定した場合はキャストを行います。キャストは値の代入時に型名を()でくくって指定します。例えば変数$NAMEを強制的に整数型にするには次のように書きます。

$NAME = (int)"123" ;

変数に値を設定することを代入といいます。変数への値の代入は = で値を記述するだけです。変数の演算は基本的な加算・減算などに加え、C言語等と同様の演算ができます。

代入と演算

説明
$a = $b + 100 ; 基本的な演算
$a = $b . "abc" ; 文字列の結合(. を使う)
$a++ ; インクリメント(変数の数値を1増やす)
$a-- ; デクリメント(変数の数値を1減らす)
$a += 2 ; 変数の値を2増やす
$a *= 3 ; 変数の値を3倍にする
$a = $b = 10 ; $a と $b の値を10に設定する

PHPで定数、つまりスクリプト内で固定の値を使うには、define関数を使って定数の宣言を行います。defineは次のように使います。

例えば、C_NAMEという定数を使うには次のようにします。

<?
define("C_NAME", "TSUMIKI") ;
echo C_NAME ;
?>

定数を扱う場合、変数と違って$マークはいりません。

PHPでは多次元の配列を扱うことができます。配列は複数の値を1つの変数に格納するもので、次のように使います。

$a[0] = "abc" ;
$a[1] = "def" ;
$a[2] = "ghi" ;

配列の初期化は次のようにして行うこともできます。

$a = array ("abc", "def", "ghi") ;

■ 関数の作成

PHPでは、関数を使って一連の処理をひとまとめにできます。関数の基本形は次のようなものです。

function kansuu($arg1, arg2)
{
・・・処理・・・
retund 戻り値 ;
}

kansuuの箇所には関数名を指定します。その後の()の中には関数へ渡す引数を指定します。関数内では渡された引数をもとに処理を行い、最後に関数の処理結果としてreturnで値を返します。関数の戻り値の型は変数と同じで、返す値の内容によって決まります。作成した関数はPHPスクリプトの任意の箇所から次のように呼び出せます。

$retval = kansuu("abc", "def") ;

例えば、2つの文字列を結合して返す関数は次のようにして作成します。

<?
echo kansuu("abc", "def") ;   //abcdefが出力される
function kansuu($arg1, arg2) {
return $arg2.$arg2 ;   //引数の文字列を結合して返す
}
?>

PHPでは複数の値を一度に戻り値として返すことができます。その場合、list関数を使って次のようにします。

$suuchii = 2
list ( $zero, $one, $two ) = $suuchi ;   //$zero, $one, #two に2が代入される
function kansuu() {
return array (0, 1, 2) ;
}

PHPでは引数の参照私を行うことができます。引数の参照渡しとは、引数として渡された変数の内容を関数内で書き換えられるようにする機能のことです。これによって、さまざまな機能を作成することができます。引数を参照渡しにするには、次のような形で関数を作成します。

function kansuu(&$arg) {
・・・処理・・・
}

関数の呼び出しは次のようにします。

kansuu($arg)

例えば、渡された引数に文字列を追加するには、次のようにします。

<?
$str = "abc" ;
kansuu($str) ;
echo $str ;       //abcdefが出力される
function kansuu(&$arg) {
$arg . = "def" ;   //文字列defを追加
}
?>

また、関数側で引数の宣言を変える方法以外にも、次のように関数呼び出し時に変数の前に&(アンパサンド)を付ければ参照渡しで引数を渡すことができます。

<?
$str = "abc" ;
kansuu(&$str) ;   //参照渡しで引数を渡す
echo $str ;     //abcdefが出力される
function kansuu($arg) {
$arg . = "def" ;   //文字列defを追加
}
?>

関数の中以外の場所で記述された変数は、グローバル変数となります。グローバル変数は、PHPスクリプトのどこからでも使用することができます。例えばスクリプトの先頭で

<?
$NAME = "TSUMIKI" ;
・・・・・・・・
?>

のように変数を記述した場合、この$NAMEはグローバル変数となり、このスクリプト内のどこからでも参照することができるようになります。

ただし、関数の中からグローバル変数を参照するには少し工夫が要ります。具体的には関数内部で、globalという宣言を使ってグローバル変数を使うことを明治します。例えば、$glblというグローバル変数を参照するには次のようにします。

<?
$glbl = "TSUMIKI" ;
・・・・・・・・・・・・・・
function kansuu($arg) {
global $glbl ;
・・・処理・・・
}
?>

関数の中で記述された変数はローカル変数となり、関数の中でのみ有効となります。関数の外からはローカル変数は参照されません。もしグローバル変数とローカル変数で同一名の変数が合った場合は、ローカル変数のほうが優先されます。

■PHPの制御文

「もし~なら~をする」といった条件判定の処理を行う場合はif文を使います。if文は基本的に次の形で使います。

if ($a == 10)    //aが10なら
echo "a is 10" ;

ifの後の()に条件を記述します。()内の条件がtrue(真)なら、()の次に喜寿地下行が実行されます。()内の条件がfalse(偽)なら()の次の行は処理されません。条件の後に複数行のコードが続く場合は、そのコードを{ }でくくって次のようにします。

if ($a != 10) {    //aが10でないなら
echo "abc" ;
echo ""def" ;
}

if条件を複数記述する場合は、elseifを使って次のように記述します。

if ($a > 10) {      //aが10より大きければ
echo "a > 10" ;
elseif ($a >= 15)    //aが15以上なら
echo "a > 15" ;
else         //それ以外
echo "no hit" ;

elseはどの条件にも該当しない場合の処理を記述します。

一定回数の間処理を繰り返すにはfor文を使います。次のようなコードを書きます。

for ($i = 0; $i < 10 ; $i++) {    //0から9の計10回繰り返す
echo "Counter Is " . $i ;
}

この例では、変数iの値が0から9になるまで処理が繰り返されます。$i=0はループカウンタiのはじめの値を意味します。次の$i<10はiの値が10より下の間ループを繰り返すという意味です。最後の$i++はループ1回につき、$iの値を1つ増やすという意味です。

逆にループを10から1になるまで処理を繰り返すには次のようにします。

for ($i = 10 ; $i > 0 ; $i--) {    //10から1の計10回繰り返す
echo "Counter Is " . $i ;
}

whileはある条件がtrue(真)の間、処理を繰り返す場合に使います。

$a = 1 ;
while ($a < 10) {       //aが10より小さい間繰り返す
echo "lower than 10" ;
$a++ ;        //aに1加算する
}

この場合、aの値が10より下の値をとる間、ループを繰り返します。

while文を途中で強制的に抜ける場合は、breakを使います。例えば次の例では条件1(必ずtrueになる)を使って無限ループを行い、aの値が10になったときにループを終了しています。

$a = 1 ;
while(1) {
if($a == 10)       //aの値が10なら処理終了
break ;
else
echo "not equal 10 ;
$a++ ;         //aに1加算する
}

また、while文ではその会の処理を飛ばすcontinueも使えます。

do~whileは、ある条件がfalse(偽)になるまで処理を繰り返す場合に使います。

$a = 1 ;
do {
echo "a < 10" ;
$a++ ;
} while ($a < 10) ;

この例では、aの値が10以上になるまで処理を繰り返しています。

case文は、ある整数の値で処理を分岐させる場合に使います。次のようなコードを書きます。defaultには、いずれにも該当しなかった場合のコードを書いておきます。なお、各caseはbreakを記述して、switchを終了しなければなりません。

$i = 1 ;

switch ($i) {
case 0 :      //iが0の場合
echo "0" ;
break ;
case 1 :      //iが1の場合
echo "1" ;
break ;
default :      //それ以外
echo "other" ;
}

■ その他

PHPを記述していると、HTMLと変数が混在した長い文字列を一度に出力したい場合が出てきます。そういった場合はヒアドキュメントという機能を使います。ヒアドキュメントは基本的に次のような形で使います。

<?
echo <<<EOD
・・・変数を含めた出力内容・・・
EOD ;
?>

ヒアドキュメントを使うと、<<<EODからEOD;までの内容が一度に出力されます。ヒアドキュメント内の変数は自動的に値に展開されるため、変数とからめてHTMLのタグを一度に出力したい場合には非常に便利です。例えば、次のような使い方をします。

<?
$NAME = "TSUMIKI" ;
echo <<<EOD
<HTML>
<BODY>
Hello! $NAME
</BODY>
</HTML>
EOD ;
?>

ちなみに、EODという文字は任意の文字で構いません。「<<<の後の文字」から、「その文字;」という文字までの内容がヒアドキュメントとして扱われます。ちはみに、ヒアドキュメント内で$(ダラー)という文字を使いたい場合は\(バックスラッシュまたは円マーク)でエスケープして\$のようにします。

PHPスクリプトの途中で処理を終了するにはexit関数を使います

<?
・・・・・・・・
exit ;
・・・・・・・・
?>

また処理を終了する場合には、なんらかのメッセージを表示することが多いので、メッセージを出力したから処理を終了するdieという関数も容易されています。die関数は次のように使います。

<?
・・・・・・・・
die ("終了メッセージ") ;      //メッセージを出力して終了する
・・・・・・・・
?>

PHPには非常に数多くの組み込み関数が用意されています。ファイル入出力、文字列関数や数学関数をはじめ、FTP、メールなどのWebに特化した高機能な関数もあります。

※ 組み込み関数については、PHP関数リファレンスを参照してください。

<< 戻る

RIKO's Trial Page | Shirley's i-box | Shirley's little box