Help us understand the problem. What is going on with this article?

PHP基礎 Part3

概要

PHPの独学で学んだことをアウトプットしていく

前回の内容

PHP基礎 Part2

if文

「もし○○の場合、△△となる」といった条件に応じて、分岐が必要な場合に用いる文法
条件成立時は、{}の中の処理が実行される

sample.php
<?php
  $num = 3;
  if ($num > 0){              // 条件式の展開
    echo "変数numは0より大きい";  // 条件を満たす場合、出力される
}
  // 結果:変数numは0より大きい
?>

比較演算子

比較元の値と比較先の値を、比較する為に以下の比較演算子を用いて判定する
判定時の結果が真の場合は、「true」で偽の場合は「false」と表す

比較演算子 判定基準
< 右辺が大きい時にTrue
<= 右辺が大きい時、もしくは等しい時にTrue
> 左辺が大きい時にTrue
>= 左辺が大きい時、もしくは等しい時にTrue
== 右辺と左辺が等しい時にTrue
!= 右辺と左辺が等しくない時にTrue
=== データ型まで含め、右辺と左辺が等しい時にTrue
!== データ型まで含め、右辺と左辺が等しくない時にTrue

else

「もし○○の場合、△△となり、そうでない場合は□□となる」といった、
if文との組み合わせで条件分岐を作成する
elseを使うことで、if文で条件を満たせなかった場合の処理を実行させることが可能

sample.php
<?php
  $age = 19;
  if ($age >= 20){            // 条件式の展開
    echo "あなたは成年です";     // $age = 19なので、条件に合致しない
 }else{
    echo "あなたは未成年です";   // else文の処理実行
}
  // 結果:あなたは未成年です
?>

elseif

「もし○○の場合、△△となり、◇◇の場合は☓☓となり、そうでない場合は□□となる」といった、
条件の分岐が3つ以上になる時に使用可能
注意点として、複数条件に合致した場合は、先に条件が合致した分岐の処理を行う

sample.php
<?php
  $num = 23;
  if ($num > 30){              // 条件式の展開
    echo "30より大きい数値";      // $num = 23なので、条件に合致しない
 }elseif ($num >= 20){
    echo "20以上30以下の数値";   // 条件に合致するので、この分岐の処理が実行
 }else{
    echo "20以下の数値";        // elseifで合致する条件があった為、実行されない
}
  // 結果:20以上30以下の数値
?>

複数条件の組み合わせ

条件式を展開する際に、複数の条件を一纏めにしたい場合に論理演算子を使用する
andを表す論理演算子は「&&」、orを表す演算子は「||」となる

sample.php
<?php
  $age = 30;
  if ($age >= 25 && $age <= 30){    // 条件式の展開
    echo "アラサーです";               // 条件に合致する為、この分岐の処理が実行
 }else{
    echo "それ以外の世代です";
}
  // 結果:アラサーです
?>

switch文

if文では複雑になるような条件をswitch文を使い、読みやすいようにする
if文とは異なり、switchという条件式を展開し、条件式に当てはまるcaseの値が合致した時に、
該当するcaseの処理が実行される
もし、どのcaseにも当てはまらない場合は、defaultの処理が実行される

sample.php
<?php
  $score = 4;
  switch ($score){
    case 1:
      echo "E判定";
      break;
    case 2:
      echo "D判定";
      break;
    case 3:
      echo "C判定";
      break;
    case 4:
      echo "B判定";  //$score = 4の為、このcaseの処理が実行される
      break;
    case 5:
      echo "A判定";
      break;
    default:
      echo "判定外";
      break;
}
  // 結果:B判定
?>

【補足】
各caseの末尾にbreakを記述しているが、
これがないと、caseに合致する条件のすぐ後ろのcaseも実行されてしまう為、
breakが入っているかを確認すること

次回

  • 配列
  • 連想配列
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away