📘

【PHP】基本編~PHPについて、基本構文~

2021/09/11に公開

PHPについて

PHPは特にWeb開発に適しており、HTMLに埋め込むことの出来る言語です。
<?php 〜 ?>の中にPHPの命令を書いていきます。
また、PHPではセミコロン;を用いて文を区切ります。

<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
    </head>
    <body>

        <?php
            echo "Hi, I'm a PHP script!";
        ?>

     </body>
</html>

変数

定義

PHPでは頭に$記号を付けることで変数を定義できます。
PHPには文字列数値などのデータの種類があります。

$name = 'なまえ';
$age = 20;

変数展開

文字列はシングルクォーテーション'またはダブルクォーテーション"で囲みます。
"で囲んだ場合は、中の変数を{}で囲むと変数の中身が展開(変数展開)され出力されます。
'で囲んだ場合は、変数展開されずそのまま出力されます。

$name = 'なまえ';
echo "こんにちは、{$name}さん"
// 結果: こんにちは、なまえさん

echo 'こんにちは、{$name}さん'
// 結果: こんにちは、{$name}さん

文字列連結

ドット.記号を用いると文字列の結合をすることができます。

$name = 'なまえ';
echo $name.'さん';
// 結果: なまえさん

$surname = '苗字';
echo $surname.$name.'さん';
// 結果: 苗字なまえさん

配列

基本構文

配列の基本構文は$配列名 = array(値1, 値2, ・・・);のように書く。

$names = array('Kate', 'Bob', 'John');
echo $names[0] // 結果: Kate

配列の末尾に値を追加する際は$配列名[]= 値;とすることで追加できる。

$names[] = 'Jin';
echo $names[3]; // 結果: Jin

連想配列

連想配列とは個々の要素を管理するのにインデックス番号ではなく「キー」の値を指定することが出来る配列です。
連想配列では$配列名 = array('キー名' => 値1, 'キー名' => 値2, ・・・);のように書く。

$user = array(
	'name' => 'Kate',
	'age', => 14,
	'gender' => 'male'
	);
echo $user['name']; // 結果: Kate

また、$配列名[キー] = 値;のようにすることで連想配列にデータを追加できる。

$user['surname'] = '苗字';
echo $user['surname']; // 結果: 苗字

条件分岐

if-elseif-else文

ifおよびelseifは()内に条件を書き、条件を満たした場合に{}内の処理を行います。
ifでなかった場合にelseifが実行され、条件を満たした処理のみを実行し以降の条件処理をスキップされます。
elseif,elseifでなかった場合に実行されます。

$x = 20;
if ($x > 30) {
    echo '$xは30より大きい';
} elseif ($x >= 20) {
    echo '$xは30以下20以上';
} elseif ($x == 20) {
    echo '$xは20';
} else {
    echo '$xは20より小さい';
}
// 結果: $xは30以下20以上

switch文

switch文はif-elseif文による分岐が複雑な場合に用いるとシンプルなコードにできます。
switch(式)の(式)の部分がcaseの値と一致した場合に処理が実行されます。
caseのどれにも一致しなかった場合にdefaultが実行されます。
また、caseの最後にbreak命令がないと後ろに続くcaseを続けて実行されてしまいます。

$coin = 0;
switch ($coin) {
    case 0:
        echo '表';
	break;
    case 1:
        echo '裏';
	break;
    default:
        echo 'エラー';
	break;
}
// 結果: 表

繰返し処理

for文

for文はfor (①初期値; ②繰り返しの条件; ④変数の更新) { ③繰り返す処理; }のように書く。
初めに①で変数の初期化をし、その後②の条件を満たすまで{}内の処理を繰り返します。
流れとしては②→③→④の処理を繰り返す形になります。

for ($i=1; $i<=100; $i++) {
    echo $i;
    }
// 結果: 1~100までの数値が出力される

while文

while文は()内に繰り返しの条件を書き、条件を満たすまで{}内の処理を繰り返します。
for文との違いは{}内に繰り返しの条件となる値を更新する必要があります。

$i = 1;
while ($i <= 100) {
    echo $i;
    $i++;
    }
// 結果: 1~100までの数値が出力される

foreach文

foreach文は配列または連想配列に対して先頭データから順に処理を行う命令です。
asの後ろの変数に配列の先頭から順にデータが代入され繰り返し処理が行われます。

$users = array('Kate', 'Bob', 'John');
foreach ($users as $user) {
    echo $user. ' ';
    }
// 結果: Kate Bob John

HTMLタグ内で条件分岐・繰り返し処理を行う

例としてHTMLタグ内でforeach文を使う場合を下記に示します。
foreach文の{の代わりに:}の代わりにendforeachを記述します。

<?php foreach ($users as $user): ?>
 <p><?php echo $user ?></p>
<?php endforeach ?>

HTMLタグ内でif-elseif-else文を使う場合は下記のようになります。

<?php if ($age >= 20): ?>
 <p><?php echo 'あなたは成人です' ?></p>
<?php elseif ($age <= 5): ?>
 <p><?php echo 'あなたは幼児です' ?></p>
<?php else: ?>
 <p><?php echo 'あなたは青年です' ?></p>
<?php endif ?>

上記のようにfor文やswitch文などもendforendswitchを用いて書くことができます。

関数

定義

関数はfunction 関数名()のように定義し、関数を用いることで独自の処理を実行し、その結果を返すことができます。関数名();のように書く事で関数を実行しその結果を取得できます。
またfunction 関数名($変数)とすることで引数を渡し、関数内で使うことができます。

function hello($name) {
    echo 'こんにちは、'.$name.'さん';
}
hello('Kate');
// 結果: こんにちは、Kateさん

関数についてはクラス内でメソッドとして定義することが多いためクラス編に詳しく記載します。
https://zenn.dev/romu/articles/1509fe38e93021

Discussion