なまけもの活動日記

ゲームや音楽、サブカルチャーがすき。

3/18 インターン10回目 演算子は難しい

 誤字によってインターン中に大量のエラーコードを発生させました。私です。今回はPHP二回目です

 

目次

1エラー連発原因

2配列

3演算子

4条件分岐

 

1エラー連発原因

 めちゃくちゃエラー連発したのでなんで?って考えてみました。課題の部分とか打ち込みながら気づいたのは、全角を打った後、半角で打ち込まなくちゃいけないところまで全角で打ち込んでいるということです。“や)などはエラーが出た後わかりにくくてなかなか気づきませんでしたが、このミスをたくさんしていたっぽい。

それを踏まえて、

①<p>と</p>で囲む

②<?php   と  ?>で囲む

③;や.を忘れない

④全角の後半角に切り替えるのを忘れない

を気を付けていきたいです。

 

2配列

 配列はarray関数をつかって、keyによって認識するものです。変数とルールは同じ。これを使うと、たくさんデータがあっても任意のものを簡単に取り出したり出来るようになります。例えば、

 

<?php
   $number =array(10,20,30);

   print_r($number);
   echo ('<br>');
   echo $number[0];
   echo ('<br>');
   echo $number[1];
   echo ('<br>');
   echo $number[2];
?>

このコードだと

Array ( [0] => 10 [1] => 20 [2] => 30 )
10
20
30

 

こんな結果になります。echo $number○○;でArrayで入れといた要素が好きな時に簡単に出せますね。

 

他にも人名や、

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

→「1番目の人は青木さんです。」と表示される。

☆.を使うと繋げられるように!

 

人のデータとかでも応用できます。

<?php
   $user = array(
         "name" =>"はる",
         "age" => 5,
         "height" => 110
         );
   echo $user[name].('<br>');
   echo $user[age];
?>

これだと、名前と年齢の 「はる 5」という風に表示されます。

 

3演算子

次は前回見た演算子の続きです。なんとなくここからややこしくなるイメージ。

①代入演算子&複合演算子

 +やーの演算子の後に=が付いたものです。例えば、

-=だと$a-=$bとしたとき、「$aに$bの値を減算して代入($a=$a-$bと同じ)」という意味です。実際にしてみると

 

<?php
   echo ('<br>');
   $b = 100;
   $a = 150;
   $a -= $b;
   echo $a;
   echo ('<br>');
?>

となり、50が表記されます。

 

.=だと「連結して代入」なので

<?php
   $c = "私は";
   $d = "あなたのことが";
   $e = "好きです";
   $c .= $d;
   $c .= $e;

   echo $c;
   echo ('<br>');
?>

だと、$cが$dとくっついて、そのくっついた状況の$cと$dがくっついて…というようになって、「私はあなたのことが好きです」と表示されます

②比較演算子、論理演算子
これはたくさんあります。

f:id:Oomi:20200320025418j:plain

こんな感じ。

これらは後の分岐条件で。

 

③加算子・減算子

 個人的に、一番これが良くわからなくて難しかったです。

++$a→最初に$aに1を加えて$aを返す

$a++→最初に$aを返して、$aに1を加える

 

個人的に、結果同じになるんじゃないの?って思いました。どう違うんだろう、て。実際やってみると、

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

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

前置は2
後値は1

という結果になります。両方2になるんじゃないの?タイミングが違うってどういうこと?っておもって調べてみたら、下のサイトの解説を見てなんとなくわかりました。

 

php-beginner.com

 

タイミングが違うってそういうことだったんだなあ、と思います。後値の方もう一回$afterをよびだしたら2ってでるって理解しました。

 

 4条件分岐

条件を満たしているか?でかわる文です。「もしも~だったら、~する。」という形。

if文とswitch文の二種類があります。

①if文

if(条件式){処理・関数;}

が基本の形。

<?php
   $a = 5;
   if($a === 5){
   echo("aの値は5です。");
   }
?>

だと、aは5なので「aの値は5です。」と表示されます。

他にも、if else文やelseif文で条件が多いものもできます。

<?php
   echo ('<br>');
   $kao = 7;
   $konomi = 8;
   if($kao > 6 && $konomi > 6){
      echo("顔OK&私の好みです");
      }elseif ($kao < 6 || $konomi < 6 ){
      echo("後1歩です");
      }else{
      echo("ない");
      }
?>

→7,8で6より大きいので「顔OK&私の好みです」になります。

②switch文

こちらも同じ感じ。こちらは、条件が多いと使われます。

witch-(case -break) -default

で一セット。また、caseのまとまりをブロックと呼びます。どの条件にも当てはまらない場合に最後のdefaltに飛びます。

<?php
   $konomi =8 ;

   switch ($konomi){
   case 3 ;
   echo"ないわ~";
   break;
   case 8 ;
   echo"はあと";
   break;
   default;
   echo"問題外";
   break;
   }
?>

→この場合「はあと」になります

 

 

今回、条件式が出てきて、本格的にプログラミング!って感じになってきたな、と思います。結構覚えることも増えてきたので、少しづつ頑張って、疑問はつぶしていきたいです。