#PHPの書き方
PHPはHTMLに埋め込んで使うことができる。の中にPHPの命令を書いていく。
PHPのコード
PHP
初級 '; ?> ``` >```html:HTMLに変換されたコードPHP
初級
```#PHPの文法
PHPでは文末にセミコロン『;』を使って文を区切る。セミコロンを忘れるとエラーが起きるので注意する。
index.php
#文字列を出力
『echo』は文字列などを出力するための命令である。文字列を出力する場合はシングルクォーテーション『'』かダブルクォーテーション『"』で囲む。
>```php
<?php echo "Hello, World!"; ?>
// 結果 Hello, World!
>
<?php echo 'Hello, PHP!'; ?>
// 結果 Hello, PHP!
#計算
echo 7 + 3;
echo 2 - 1;
echo 3 * 6;
echo 4 / 2;
echo 5 % 2;
#変数
頭に『$』記号をつけることにより変数を定義できる。『$変数名 = 値;』で様々な値を変数に入れることができる。
>```php
<?php
$name = 'Bob';
echo $name;
?>
結果
Bob
// 正方形の面積を計算
$length = 7;
$area = $length * $length;
echo $area;
結果
49
#文字の連結
『.』記号を用いると文字を連結することができる。
>```php
$lesson = 'PHP';
echo $lesson.'入門';
// 結果: PHP入門
>
$level = '入門';
echo $lesson.$lrvel;
// 結果: PHP入門
『.=』を用いると変数の文字列の連結を省略して書くことができる。
$name = '山田';
$name .= '太郎';
// $name = $name.'太郎'と同じ意味
echo $name;
結果
山田太郎
#変数展開
>```PHP
$name = 'takahashi';
echo "こんにちは、{$name}さん";
// 結果: こんにちは、takahashiさん
>
// シングルクォーテーションで囲んだ場合は変数展開されない
echo 'こんにちは、{$name}さん';
// 結果: こんにちは、{$name}さん
#if文 else elseif文
if文を使うと条件に応じて処理を分岐できる。
$x = 20;
if ($x > 10) {
echo '$xは10より大きい';
}
結果
$xは10より大きい
elseはifの条件がfalseであった場合、elseの処理が実行される。
>```php
$x = 20;
if ($x == 30) {
// 処理は実行されない
echo '$xは30です';
} else {
// 処理は実行される
echo '$xは30ではありません';
}
結果
$xは30です
elseifを用いることで、多岐分岐が可能になる。
$x = 20;
if ($x > 30) {
// falseであるため実行されない
echo '$xは30より大きい';
} elseif ($x >= 20) {
// trueであるため実行される
echo '$xは30以下20以上';
} else {
// すでに当てはまる条件があったため実行されない
echo '$xは20より小さい';
}
結果
$xは30以上20以下
#論理演算子
『&&』は『かつ』、『||』は『または』
>```php
$x = 20;
if ($x > 10 && $x < 30) {
echo '$xは10より大きい、かつ30より小さい';
}
if ($x < 10 || $x > 30) {
echo '$xは10より小さい、または30より大きい';
}
結果
$xは10より大きい、かつ30より小さい
#条件の否定
『!』も論理演算子の1つであり、条件の否定ができる。
条件の否定は条件式のtrueとfalseが逆になる
$x = 20;
if (!($x == 30)) {
echo '$xは30ではない';
}
結果
$xは30ではない
#switch文
switch文はswitch(式)の(式)がcaseの値と一致したとき、そのブロックが実行される。caseのどれにも一致しなかった時、defaultのブロックが実行される。
>```php
switch ($coin) {
case 0:
echo '表';
break;
case 1:
echo '裏';
break;
default:
echo 'エラー';
break;
}
caseブロックの最後にはbreak命令を指定する。break命令は現在のブロックから脱出するための命令である。break命令がないと、後ろに続くcaseブロックが続けて実行される。
#配列
配列の基本構文は『$配列名 = array (値1,値2,・・・);』となっている。
配列のデータには先頭から0,1,2,・・・と順にインデックス番号が割り振られている。
配列のデータを取り出すにはインデックス番号を用いて$配列名[インデックス番号]とする。
$name = array('jhon', 'kate', 'bob');
echo $names[0];
// 結果: john
echo $names[1];
// 結果: kate
値の追加は、『$配列名[] = 値;』とすることで追加できる。
すでに存在するインデックス番号を指定すると、配列の値を上書きすることもできる。
>```php
$names = array('john', 'kate', 'bob');
// 配列の末尾に値を追加する
$names[] = 'Mary';
echo $names[3];
// 結果: Mary
>
// 値の上書き
$names[1] = 'jane'
echo $names[1];
// 結果: jane
#連想配列
$配列名 = array('キー名' => '値1', ・・・); のように、 => を用いてキーと値をセットする。
$user = array(
'name' => 'emi',
'age' => 14,
'gender' => 'male'
);
値の取り出すには、対応するキーを用いて『配列名[キー];』のようにする。
>```php
$user = array(
'name' => 'dai',
'age' => 14
);
>
echo $user['name'];
// 結果: dai
『配列名[キー] = 値;』のようにすることで、連想配列にデータを追加することができる。
$user['level'] = 'beginner';
#for文
for文は、 for (①初期化; ②ループの条件; ④変数の更新) { ③繰り返す処理; } のように書く。
>```php
for ($i = 1; $i <= 100; $i++) {
echo $i.'<br>';
}
結果
1
2
3
・
・
・
100
#while文
while文は
①初期化
while (②ループの条件 ) {
③繰り返す処理;
④変数の更新;
}
のように書く。
>```php
$i = 1;
while ($i <= 100) {
echo $i;
$i++;
}
#break文
break文は現在のループを強制的に中断する命令である。
for ($i = 1; $i <= 10; $i++) {
if ($i > 5) {
// $iが6になった段階でfor文を終了
break;
}
echo $i;
}
結果
12345
#continue文
continue文は現在の週だけスキップし、ループそのものは継続して実行する。
>```php
for ($i = 1; $i <= 10; $i++) {
if ($i % 3 == 0) {
continue;
}
echo $i;
}
結果
123457810 (3の倍数)
#foreach文
foreach文は配列または連想配列に対して、先頭のデータから順に繰り返し処理を行うための命令である。
『as』の後ろの変数に、ループの度にデータが先頭から順に代入される。
$towns = array('東京', '大阪', '京都');
foreach ($towns as $town) {
echo $town.' ';
}
結果
東京 大阪 京都
foreach文では、配列内のデータが順次『キー変数』、『値変数』に代入され、それに対して処理が繰り返し適用される。
>```php
foreach (配列 as 値変数) {
繰り返したい処理;
}
foreach (配列 as キー変数 => 値変数) {
繰り返したい処理;
}
下記のコードでは果物の名前を『キー』として、その色を『値』として保持している連想配列である。
1週目のループでは$keyに'Apple'、$valueに'Red'が、2週目のループでは$keyに'Banana'、$valueに'Yellow'が入っている。
$colors = array(
'Apple' => 'Red',
'Banana' => 'Yellow',
'Grape' => 'Purple'
);
foreach ($colors as $key => $value) {
echo $key.':'.$value.' ';
}
結果
Apple:Red Banana:Yellow Grape:Purple
#関数
関数はあるまとまった処理を行い、値を返すものである。
関数には元から組み込まれているものが有り、それらは組み込み関数と呼ばれている。
strlen
strlenは組み込み関数の一つで、文字列の文字数を返す。
()の中に与える値を引数という。
>```php
echo strlen('takahashi');
// 結果 : 7
$user = 'ken'
echo strlen($user);
// 結果 : 3
count
配列の要素の数を返す関数
$towns = array('東京', '大阪', '京都');
echo count($towns);
// 結果 : 3
rand
ランダムな整数を返す関数
>```php
echo rand(1, 4);
// 1〜4のランダムな整数を返す
// 結果 : 2
#関数の作成
関数は『function 関数名(){処理}』という書き方をする。
function hello() {
echo 'Hello, World!';
}
呼び出すには『関数名()』で呼び出す。
>```php
hello();
結果
Hello, World!
#引数
引数を関数内で使うには、それを受け取るための『仮引数』を関数の定義時に指定しておく必要がある。
仮関数が複数ある場合はカンマ(,)を用いて指定する。
関数の定義
function printSum($num1, $num2) {
echo $num1 + $num2;
}
関数の呼び出し
>```php
printSum(1, 3);
結果
4
#戻り値
戻り値は『return』で指定する。
関数の定義
function getSum($num1, $num2) {
return $num1 + $num2;
}
関数の呼び出し
>```php
$sum = getSum(1, 3);
echo $sum;
結果
4
formタグ(HTML)
フォームを作りたいときは、HTMLの<form>タグを用いる。
action属性にはデータを渡す先のURLを指定する。
method属性は値の送信方法で、『get』と『post』のどちらかを指定する。
getの場合は送信される値がurlに表示され、postの場合はurlに表示されない。
// フォームの内容 ```
#テキストボックス
テキストボックスを作るにはHTMLの<input type="text">を使う。
name属性は入力された値を取得する時に使う名前である。
email // 入力データに名前をつける 内容 // textareaは閉じタグが必要 > // 送信ボタン ```
#フォームのデータを受け取る
フォームで送信した値を受け取るには『$_POST』を使用する。
『$_POST』は連想配列になっている。[]の中に、<input>と<textarea>のname属性に指定した値を入れることで、それぞれの送信した値を受け取ることができる。
> > > > ``` ```php:sent.php ```index.php
$_POSTの中身は連想配列になっている
$_POSTの中身
array(
'name' => 'takahashi',
'email' => 'ddd@d.com'
)
#セレクトボックス
セレクトボックスは<select>タグの中に<option>タグを並べる。
>```php:index.php
<form action="sent.php" method="post">
<select name="fruit">
<option value="apple" >りんご</option>
<option value="banana">ばなな</option>
<option value="orange">みかん</option>
</select>
</form>
<?php echo $_POST['fruit']; ?>
#繰り返し処理と変数展開
繰り返し処理と変数展開を用いて多数のoptionタグを作成する。
for ($i = 1; $i < 4; $i++) {
echo "{$i}";
}