ではこういう想定外をどう回避したらいいか
たとえばこう
<?php
$score=1000;
if($score<0 || $score>100){
echo "無効な数値です";
}elseif($score<=30){
echo "a";
}elseif($score<=60){
echo "b";
}elseif($score<=90){
echo "c";
}elseif($score<=100){
echo "d";
}
?>
最初に条件外を外す
とかとか。
もちろん丁寧に条件を詳しく書いてもいい
なお$scoreを一か所&scoreとスペルミスしてエラーが出た
でたエラーは以下の通り:
Parse error: syntax error, unexpected '&' in
C:\xampp\htdocs\php\20200108\elseif2.php on line 24
--->elseif2.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>elseif</title>
<link rel="stylesheet" href="test1.css">
</head>
<body>
<?php
$num=250;
if($num<=100){
echo "100以下";
}elseif($num<=200){//100以下はすでに省かれているのでこの記述でよい
echo "100より上200以下";
}else{
echo "200以上";
}
?>
<?php
$score=1000;
if($score<0||$score>100){
echo "無効な数値です";
}elseif($score<=30){
echo "a";
}elseif($score<=60){
echo "b";
}elseif($score<=90){
echo "c";
}elseif($score<=100){
echo "d";
}
?>
</body>
</html>
switch文もphpにある
switch(変数){
case 条件1:
条件1がtrueの時の処理
break;
case 条件2:
条件2がtrueの時の処理
break;
default:
どの条件にも合わなかったときの処理
break;
}
という今までと同じ記述
break;を記述しないと以下の部分を全部実行しようとするので注意
最初にこういう形で記述しておく
<?php
$value="A";
switch(){
}
?>
かっこの閉じは最初に記述。
--->switch.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>switch</title>
<link rel="stylesheet" href="test1.css">
</head>
<body>
<?php
$value="A";
switch($value){
case "A":
echo "Aが入力された";
break;
case "B":
echo "Bが入力された";
break;
case "":
echo "何も入力されていない";
break;
default:
echo "A,B以外が入力された";
break;
}
?>
</body>
</html>
ではこれと同じ挙動をするものをif文で作りましょう
<?php
$value="A";
if($value=="A"){
echo "Aが入力された";
}elseif($value=="B"){
echo "Bが入力された";
}elseif($value==""){
echo "何も入力されていない";
}else{
echo "A,B以外が入力された";
}
?>
最初に=を1つだけというミスをしたので全部Aになるというエラーになった。
条件一致は==で。
これでもいい
<?php
//$value="A";
if($value=="A"||$value=="B"){
echo $value."が入力された";
}elseif($value==""){
echo "何も入力されていない";
}else{
echo "A,B以外が入力された";
}
?>