KATインターン no.7 PHP 配列と条件分岐

こんにちは!

ブログを書くたびにここの前文に何を書こうかなと考えていて、結局、最近あったこととか思ったことしか書いてないなと思っています。

みんな、どうやって何を書いているんでしょうね。何も書かないという手もありかな。(-_-)

まあ、こんな感じで今回の前文は置いといて、KATインターンで行った初期トレPHP編を書いていきます。

 

=配列=

前回の初期トレで学んだ変数は箱のイメージでしたが、配列は箱が連なっているイメージです。箱の数だけ複数のデータ(要素)を入れられます。

また、配列では連なった箱1つ1つを「要素」と呼びます。各要素にはkeyという数値がついており、keyは基本的に[0]からスタートします。

 

*実践*

配列は配列名とkeyで取り出せる!

<?php
   $number = array(10,20,30); 配列の作成
        
   print_r ($number); 配列の中身の表示
   echo('<br>');
   echo $number[0]; 配列の1番目(10)を出力
?>

array関数は「配列を作る」という命令、print_r関数は表示をするという命令です。この2つの関数により、結果に配列の中身が表示されます。

 

keyは指定しない場合、0からkeyは始まりますが、keyの数字を指定することもできます。

例:$number = array(5 => 100, 6 => 200):

 

連想配列

連想配列とは、keyに文字列を用いた配列のことです。

 <?php
    $name = array("one" => "青木""two" => "井上""three" => "内田");
 
    print_r ($name);
    echo('<br>');
    echo("1番目の人は".$name[one]. ("さんです。").('<br>');
    // .(ピリオド)は連結
?>

数値の[0],[1],[2]ではなく文字列のkeyを指定しています。

よって、oneという箱に「青木」、twoという箱に「井上」、threeという箱に「内田」というデータが入っていることになります。

 

また、keyは数値と文字列が混じっていてもOKです。

さらに、配列は $変数名[key]=値: または array_push関数を用いて後から要素を追加することもできます。

 

配列のはじめにも述べたように、配列は箱が連なっているイメージで箱の数だけデータ(値)を増やすことができます。しかし、要素(箱)に入るデータは1つだけです。そのため、上書きをする際には、keyを指定してデータを上書きします。

反対に、削除はunset関数を用いて行います。

 

=代入演算子・複合演算子

演算子は、計算や文字の連結、比較などに使います。

代入演算子は(=)、そして代入演算子(=)と代数演算子(+ , - , * , / ,%)を組み合わせたものを複合演算子と呼びます。

 

*種類*

①= 例:$a = $b

 <?php
    $a = 200;
    $b = 100;
    $a = $b;  $aに$bの値が代入される
    echo $a;  →100が出力
?>

 

②-= 例:$a -= $b

 <?php
    $a = 200;
$a = 150;
    $a -= $b; ($a = $a - $bと同じ)
    echo $a;  →50と出力
?>

 

その他にも下記のような種類があります。

③+= 例:$a += $b ($a = $a + $b)

④*= 例:$a *= $b ($a = $a * $b)

⑤/= 例:$a /= $b ($a = $a / $b)

⑥%= 例:$a %= $b ($a = $a % $b)

⑦.= 例:$a .= $b 文字列の連結($a = $a . $bと等しい)

 

=加算子・減算子=

++$a(前置)と$a++(後置)があり、2つは演算のタイミングが異なります。

<?php
        $before = $a = 1;
        // $aに1を足した後に、$beforeに値を代入する
        $before = ++$a;
        echo "前置は".$before."<br>";
        
        $after = $a = 1;
        // $afterに代入した後に、$aに1を足す。
        $after = $a++;
        echo "後置は".$after."<br>";
?>

今回、私はこの演算のタイミングがわかりませんでした。もう少し調べて、次の初期トレまでには理解出来たらいいなと思います。

 

=条件分岐=

「もし○○だったら、○○する」というように、条件によって処理を分けたいときに条件分岐を行います。

条件分岐ができるのは、if文とswitch文です。

 

1. if文

if文は、ifのみ、if~else文、if~elseif~else文の3種類があります。

*if~elseif~elseの実践*

<?php
        $a = 10;
        if($a === 5){
            echo("aの値は5です。");
        } elseif($a > 5){
            echo("aは5より大きいです。");
        } else {
            echo("aは5未満です。");
        }
?>

$aが5だったら、$aが5より大きかったら、$aがそれ以外(5未満)だったらという条件で、該当する結果を出力します。

elseifは複数記述でき、条件を増やすことが可能です。

 

=複数条件=

&&(かつ) や ||(または)のように、複数条件を付けることができます。 

 
if($kao > 6 && $konomi > 6){
     echo("");
elseif ($kao < 6 || $konomi < 6){
     echo("");
else {
     echo("");
}

 

また、if(!($a > 6)) →$aが6以上ではない というように !(条件)で条件の否定になります。 

 

2.switch文

switch文は条件が多く、if文で書くと長くなる場合に使います。

各caseのまとまりをブロックといい、breakは各ブロックを仕切る壁のような役割です。よって、条件が当てはまるとswitch文から抜けます。

どの条件にも当てはまらなかった場合、defaultの処理が行われます。このdefaultは省略が可能です。

<?php
        $konomi = 8;
        switch($konomi){
            case 3;
                echo "なし";
                break;
            case 8;
                echo "OK";
                break;
            default;
                echo "問題外";
                break;
        }
?>

 

=感想=

今回の初期トレは前回よりも圧倒的に内容が濃かった気がしました。さらに、難しくなって??となる部分も多かったです。実際にやってみてやっと理解できる部分ばかりでした。読むばかりではなく、実際に手を動かしてやってみる方が理解がはやい、理解しやすい気がしますね。

 

おわり

 時間の使い方、もっとうまくなりたいな~