PHP基礎_演算子、関数等のまとめ

# 〇PHPの基礎
備忘録として、PHPの基礎をまとめます。

### HTML内にPHPを記述する方法
```
<html>
    <body>
        <?php echo 'phpの記述方法_01'; ?>
    </body>
</html>
```

---
### echo関数
数値や文字列を表示する関数（printf的なやつ）
```
echo 1 + 1;//数値なので計算結果の2が表示される。
echo '表示する関数';//文字列を表示する際は、シングルorダブルクォーテーションで囲む
```

---
### 変数のルール
変数名に日本語は使わず、数字から始めない。
```
$変数名 = 3;//変数の宣言及び代入
```

---
### ・算術演算子
```
echo 4 + 6;//足し算
echo 10 - 4;//引き算
echo 3 * 6;//掛け算
echo 9 / 3;//割り算
echo 5 % 2;//mod、割り算の余り
```

---
### 数値や文字列の連結
```
$test = 'abc';
echo '123' . $test .'456';//123abc456と表示される。
```


---
### 変数に自身と別のものを足し合わせて再代入
```
$count += 5;//$count = $count + 5と同義
$count -= 5;//$count = $count - 5と同義
$count *= 5;//$count = $count * 5と同義
$count /= 5;//$count = $count / 5と同義
$count %= 5;//$count = $count % 5と同義
$count .= '追加する内容';//$count = $count . '追加する内容'と同義
```

---
### シングルクォーテーションとダブルクォーテーションの扱いの違い
```
$test = 'abc';

echo '123{$test}';
//シングルクォーテーションの場合、すべて文字列として認識されるため
//123{$test}といったように、そのまま表示されてしまう。
//そのため、変数を用いる場合は当記事の「文字列の連結」にあるような形式で記述する必要がある。

echo "123{$test}";
//{}で囲まれた箇所は変数として認識されるため、
//123abcと表示される。
```

---
### 比較演算子
```
$x < $y;//小なり
$x <= $y;//小なりイコール
$x >= $y;//大なりイコール
$x > $y;//大なり
$x == $y;//等しい時、true
$x != $y;//等しくない時、true

//!のnotは他の関数の頭につけることでも使用可能
//isset関数は引数が定義されているものである時、true。定義されていないもの（null）の時、falseを返す
//下記のように記述すると、issetの結果が反転するためif文等の条件式などに使える。
!isset();
```

---
### 条件文
・if、else if、elseについて
「もし～の時、～する。」という関数
else：直前のifやelse if文まで全てがfalseだった際に実行する時のif文。条件式はない。
else if：if文やelse文の間に条件式として使える文。条件式あり。


・構文
```
if(条件){
 //trueの時、実行する処理
}else if(条件){
 //trueの時、実行する処理
}else{
 //全てのif、else if文がfalseだった際に実行される処理
}
```
・サンプルコード
```
$test = 1;

if($test == 5){
    echo '変数testは5です。';
}else if($test <= 0){
    echo '変数testは0以下です。';
}else{
    echo '変数testは、5でなく、0以下でもありません。'
}
```

---
### 繰り返し文
for文およびwhile文、条件がtrueの間は繰り返し実行する関数。
```
for(初期値; 条件式; 更新時処理){
ループしたい処理
}

while(条件式){
ループしたい処理
}
```
サンプルコード
```
//forの場合
for($i = 1;$i <= 5;$i++){
}

//whileの場合
$x = 1;
while ($x <= 5) {
　$x += 1;
}

```


---
### break関数、continue関数
```
//break文は、ループや処理を強制的に中断する。繰り返しに使うと、それ自体を中断する。
    for ($x = 1; $x <= 5; $x++) {
        if ($x == 3) {
            break;
        }
        echo $x . '回目<br>';
    }

//continue文は、その周のループ処理をスキップしたい時に使用
//forループの$1が3になったときに処理をスキップする例です。
    for ($x = 1; $x <= 5; $x++) {
        if ($x == 3) {
            continue;
        }
        echo $x . '回目<br>';
    }
```


---
### 論理演算子
複数の条件を組み合わせる際に使用する
```
$test = 1;
if($test == 1 && $test < 0){}//&&で「AかつB」の条件
if($test == 1 || $test < 0){}//||で「AまたはB」の条件
//!の否定も論理演算子のひとつ
```

---
### switch関数
引数が各caseの値と等しい時、実行する。該当するものがない時は、defaultに記述したものが実行される。
```
switch ($i) {
    case 0:
        echo "iは0に等しい";
        break;
    case 1:
        echo "iは1に等しい";
        break;
    case 2:
        echo "iは2に等しい";
        break;
    default:
       echo "iは0,1,2に等しくない";
}
```


---
### 配列
```
//配列の宣言および代入
$x = array('test01','test02','test03');
//配列の場合は、1,2,3ではなく、0,1,2というように先頭からbヴ番号が付いている。

echo $x[0];
//test01と表示される。

$x[0] = 'abc';
//指定したインデックス番号の上書き

$x[] = '123';
//配列xの末尾に、123を追加
```

---
### 連想配列
インデックス番号ではなく、キーと呼ばれる文字列等で指定する。
下記コードの場合は、「名前」とキーとして指定すると「山田太郎」という値がでてくる。
```
$user = array(
    "名前" => "山田太郎",
    "年齢" => 30,
    "職業" => "エンジニア"
);

echo $user["名前"];
//山田太郎と表示される。
```

---
### foreach関数
配列や連想配列について先頭から後端まで順番に繰り返し処理を行う。
・構文
```
foreach ( $配列の変数 as $値変数 ) {
// ループ処理をここへ記述
}

foreach ( $配列の変数 as $キー変数 => $値変数 ) {
// ループ処理をここへ記述
}
```
・サンプルコード
```
//通常の配列の場合のサンプルコード。
$test = array('a','b','c');
foreach($test as $count){
    echo $count;
}
//実行結果
//abc


//連想配列の場合のサンプルコード
$test = array(
    'a' => '1',
    'b' => '2',
    'c' => '3'
);

foreach($test as $key => $value){
echo $key .'はキー。値は、'. $value .'<br>';
}
//実行結果
//aはキー。値は、1
//bはキー。値は、2
//cはキー。値は、3
```

---
### 自作関数
関数を自身で定義して作成できる。

構文
```
function 作りたい関数名(引数){処理}
```
サンプルコード
```
function test($num){
    echo $num . 'が引数。これは自作関数です。';
}
        
test('「こんにちは」');

//実行結果
//"「こんにちは」が引数。これは自作関数です。"と表示されます。
```

---