素のPHPを使うにあたり、最低限の文法を押さえておかないと、何もできません。
難しいこと・高度なことは後から調べたらどうとでもなります。
まずは、最低限、これを知らないとプログラムが書けない・・程度の部分を整理しときます。
PHPのソースコードをどこに書くか
まず、PHPのプログラムは、拡張子「.php」のテキストファイルに書きます。
HTMLのソースに、PHPのソースを追加して、拡張子をphpに変える感じですかね。
PHPのソースコードは、開始タグ(<?php)と終了タグ(?>)の間に書くことになります。
<?php
// ここにプログラムを書く
?>
この開始タグから終了タグの間以外を、PHPは無視して、そのまま出力します。
一つのファイルの中で、HTML記述をはさんで分割して書いたとしてもなんら問題ありません。
それどころか、PHPは開始タグと終了タグにまたがって、if文をかいても大丈夫なんですね。
こんな感じで。
<?php if ($expression == true): ?>
条件式が真の場合にこれが表示されます。
<?php else: ?>
それ以外の場合にこちらが表示されます。
<?php endif; ?>
ファイルに分割して書くことも可能です。
他のファイルに書いたPHPプログラムをインクルードして、そこで定義した関数などを使うときには、includeします。
例えば、db.phpというファイルにDB接続などの使い回しをする部分だけを書いて、ソースの頭の方でincludeすれば、そのファイルの中で定義した関数を使えます。
//db.phpの中で定義した関数を使う。
?>
基本的な構文
PHPのひとつひとつの命令文(ステートメント)の区切りにはセミコロンをうちます。
session_start();
みたいに。
コメントは、C言語やJAVAなんかと同じ、/* */(ブロックコメント)と//(行コメント)が使えます。
定数
定数は、以下のように定義します。
定数の名前は、 文字またはアンダースコアで始めます。
数字で始めるのはNGです。
任意の数の文字、数字、 アンダースコアで構成します。
変数
変数は、$を頭につけて定義します。
大文字・小文字は区別します。
つまり、以下は別の変数になります。
$val
$Val
変数の定義時に型をわざわざ指定する必要はありません。
ユーザ定義関数
ユーザ定義関数は、functionをつけます。
function func($argv1,$argv2){
return argv1.":".$argv2;
}
引数はスカラ変数でも、arrayなどでも同じ渡せます。
デフォルトは「値渡し」です。
結果はreturnで返しても、返さなくても良いです。
&を引数につけると「参照渡し」にできます。
function add_some_extra(&$string){
$string .= 'and something extra.';
}
よく使う演算子
文字列の連結には「.」を使います。
"aaa","bbb","ccc" を連結して、「aaabbbccc」という文字列にするときには、"aaa"."bbb"."ccc" になります。
変数への値の代入は「=」です。
$a = 5;
次は計算ですね。
- $a + $b : 足し算
- $a - $b : 引き算
- $a * $b : 掛け算
- $a / $b : 割り算
- $a % $b : $a を $b で割ったあまり
- $a ** $b : $a の $b乗
まあ、普通です。
計算結果の符号は、$aの方を優先します。
次は比較演算子です。
等しいは2種類あります。
- $a == $b :等しい時に TRUE。
- $a === $b :等しいときにTRUE。
==は、型を相互変換であわせた上で比較し、===は、型の自動変換をせず、値と型の両方が一致しているかどうかを見る違いがあります。
等しくない・・は3種類あります。
- $a != $b :等しくない( 型の相互変換あり)
- $a <> $b :等しくない( 型の相互変換あり)
- $a !== $b :等しくない(相互変換しません。)
大小比較です。
- $a < $b: $a が $b より少ない時に TRUE。
- $a > $b : $a が $b より多い時に TRUE。
- $a <= $b :$a が $b より少ないか等しい時に TRUE。
- $a >= $b : $a が $b より多いか等しい時に TRUE。
論理演算子
and演算子は2種類あります。
- 条件A and 条件B: 条件Aと条件Bが両方満たされる場合にTRUE
- 条件A && 条件B: 条件Aと条件Bが両方満たされる場合にTRUE
or演算子も2種類あります。
- 条件A or 条件B: 条件Aと条件Bのいずれかの場合にTRUE
- 条件A || 条件B: 条件Aと条件Bいずれか場合にTRUE
ただし、計算の優先順位は、&&と|| の方が高いです。
条件の結果を否定する場合は「!」です
- !条件式: 条件式がTRUEなら、FALSEを返す。
配列を結合したり、比較したりもできます。
- $array_a + $array_b : $arrat_a に $array_bを結合します。
2つの配列が等しい・・も2種類あります。
- $array_a == $array_b :キー/値のペアが等しい
- $array_a === $array_b :キー/値のペア・・並び順・型全てが等しい
2つの配列が等しくない・・は3種類あります。
- $array_a != $array_b :キー/値のペアが等しくない
- $array_a <> $array_b :キー/値のペアが等しくない
- $array_a !== $array_b :キー/値のペア・・並び順・型のどれかが等しくない
あと、演算子ではないですが、非常によく使う(個人的に?)のが、isset()です。
変数に値がセットされているかどうかの検査に使います。
例
if (isset($a) {
// 変数がセットされていて、 NULL でない場合に行う処理
}
制御文
if ~ else ~ の制御文の書き方も2種類あります。
{} のブロックで囲む場合。
<?php
if ($a > $b) {
echo "aはbより大きい";
} elseif ($a == $b) {
echo "aはbと等しい";
} else {
echo "aはbより小さい";
}
?>
:(コロン)で区切る場合。
if ($a > $b):
echo $a." is greater than ".$b;
elseif ($a == $b):
echo $a." equals ".$b;
else:
echo $a." is neither greater than or equal to ".$b;
endif;
です。