Warning: The magic method InvisibleReCaptcha\MchLib\Plugin\MchBasePublicPlugin::__wakeup() must have public visibility in /home/c7716645/public_html/atsuatsupoteto.com/wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php on line 37
PHP基本構文まとめ | だいごろとあつぽてのブログ

【PHP】基本構文

はじめに

Laravelを使ってみようと思ったが、そもそもPHPを使ったことがないので、基本構文から確認した。

慣れるまで毎回調べるのは面倒なため、メモしておく。

出力や文字列、計算等

出力

echo:文字列などを出力する。

文字列

文字列はシングルクォーテーション「’」かダブルクォーテーション「”」で囲む。

計算

算術演算子は他の言語と同じ感じで

足し算「+」、引き算「-」、掛け算「*」、割り算「/」、余り、「%」。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Title</title>
  <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
​
  <?php
    // 文字列を出力
    echo 'Hello, world!';
  ?>

  <br>
​
  <?php
    // 計算
    echo 5*3
  ?>
​
</body>
</html>

文字列と数値での「+」の違い

  <!-- 「4」が出力される -->
  <?php
    echo 1+3
  ?>
​
  <br>
​
  <!--「 1 + 3」が出力される -->
  <?php
    echo '1 + 3'
  ?>

変数

頭に「$」記号をつけることによって変数を定義する。

$変数名 = 値;

文字列の連結

文字列の連結はドット「.」を使う。文字列同士の連結、変数と文字列の連結、変数同士の連結をすることができる。

また、「.=」で連結を省略できる。

  <?php
     // 'こんにちは!あつぽて'と出力

    $name = 'あつぽて';
    echo 'こんにちは!'.$name;
  ?>
  <?php
     // 'こんにちは!あつぽてと出力

     $name = 'こんにちは!';
    $name .= 'あつぽて';
    echo $name;
  ?>

変数展開

ダブルクォーテーションで文字列を囲んだ場合、中の変数を{}で囲むとその部分が変数に入っている値で置き換えられます(変数展開)。シングルクォーテーションで文字列を囲んだ場合は変数展開されず、変数が{}で囲まれていてもそのまま文字列としてみなされます。

  <?php
    // 'あつあつ!ぽてと'と出力

    $name = 'ぽてと';
    echo "あつあつ!{$name};
  ?>
​
  <?php
    // シングルコーテーションだと'あつあつ!$name'と出力

    $name = 'ぽてと';
    echo 'あつあつ!${name}';
  ?>

条件分岐

 <?php
    // $ageという変数に自分の年齢を代入してください
    $age = 17;
    if ($age >= 20){
      echo "あなたは20歳以上です。";
    } else{
      echo "あなたは20歳未満です。";
    }
  ?>

if文

if

条件分岐はよくある他の言語と同じでif文。

else

if(){}else{}で、「もしも〜だったら・・・、そうでなければ・・・」が実装できる。

elseif

elseifを用いることで、「もしも〜だったら・・・、それとも〜であれば・・・、いずれでもなければ・・・」といった多岐分岐が実装できる。もし複数の条件に合致した場合、最初に合致したブロックのみ実行される。

文末のセミコロンについて

条件分岐やループ処理などは、命令を実行する部分にのみ「;」をつける。
判定している行にはセミコロンをつけない

比較演算子

演算子記述例意味
==a == bbとaの値が等しい
===a === bbとaの値が等しく型も等しい
!=a != bbとaの値が等しくない
<>a <> bbとaの値が等しくない
!==a !== bbとaの値または型が等しくない
>a > bbよりaが大きい
>=a >= bbよりaが大きいか等しい
<a < bbよりaが小さい
<=a <= bbよりaが小さいか等しい

複数の条件式を組み合わせる

  <?php
  
    $x = 1071;
    
    // 以下にif-elseif-else文を書いてください
    if ($x % 3 == 0 && $x % 7 == 0) {
      echo 'xは3の倍数かつ7の倍数です。';
    } elseif ($x % 3 == 0) {
      echo 'xは3の倍数ですが7の倍数ではありません。';
    } elseif ($x % 7 == 0) {
      echo 'xは7の倍数ですが3の倍数ではありません。';
    } else {
      echo 'xは7の倍数でも3の倍数でもありません。';
    }
    
  ?>

複数の条件を1つにまとめる際には論理演算子「&&」、「||」等を使用する。

&&(かつ):左右の式がともに「true」の場合、全体も「true」となる。

||(または):左右の式のどちらか、または両方が「true」の場合、全体も「true」となる。

「!」:条件の否定ができる。式が「真」であれば「偽」に、「偽」であれば「真」となる。

switch文

条件分岐にはif文の他にswitch分がある。if, elseifによる分岐が多く複雑な場合、switch文で書き換えるとシンプルで読みやすいコードにできる。switch(式)の(式)がcaseの値と一致したとき、そのブロックが実行され、caseのどれにも一致しなかった時、defaultのブロックが実行される。

break

caseブロックの最後にはbreakを記述する必要がある。breakがないと、後ろに続くcaseブロックが続けて実行されてしまう。

  <?php

   // 変数$numを定義し、好きな数字を代入してください
   $num = 50;
   // 変数$remainderを定義し、変数$numを3で割った時の余りを代入してください
   $remainder = $num % 3;
   
   // switch文を用いてください
 
   switch ($remainder) {
     case 0:
       echo '大吉です。';
       break;
       
     case 1:
       echo '中吉です。';
       break;
     
     case 2:
       echo '小吉です。';
       break;
       
     default:
       echo '凶です。';
       break;
  }
 ?>

配列

配列は「$配列名 = array(値1, 値2, ・・・);」と記述する。
配列のデータには先頭から「インデックス番号」が割り振られる。配列のデータを取り出すには「インデックス番号」を用いて $配列名[インデックス番号] という風に指定する。
※インデックス番号の最初は1ではなく0から始まるので注意。

  <?php

    // この下に配列を作ってください
    $colors = array ('緑', '青', '黄');
    
    //$colorsの最初の要素をechoしてください。    
    echo $colors[0];
    
    //$colorsの末尾に白を追加し、$colorsの最後の要素をechoしてください。  
    $colors[] = '白';
    
    echo $colors[3];
    
  ?>

連想配列

連想配列も配列と同じく複数のデータをまとめて管理できる。配列との違いは、インデックス番号ではなく、「キー」で管理できる。 連想配列では「$配列名 = array(‘キー名’ => ‘値1’, ・・・);」といったように、「=>」を用いてキーと値をセットする。

連想配列の値を取り出すには、対応する「キー」を用いて 「配列名[キー] 」のように書く。
また「配列名[キー] = 値;」で、データを追加することができる。

 <?php

    // この下に連想配列を作ってください
    $scores = array('数学' => 70, '英語' => 60, '国語' => 80);
    
    //$scoresの'国語'に6を足してください。
    $scores['国語'] += 6;
    
    //$scoresの'国語'をechoしてください。
    echo $scores['国語'];

	//連想配列の追加
	$hoge = array('key1'=>'value1');
	$hoge += array('key2'=>'value2');

  ?>

繰り返し処理

for文

  <?php

    // 1~100を繰り返し出力する
    for ($i = 1; $i <= 100; $i++) {
      echo $i;
      echo '<br>';
    }

  ?>

while文

<?php

    $i = 1;
    
    // 1~100から偶数を繰り返し出力
    while ($i <= 100) {
      if ($i % 2 == 0) {
        echo $i;
        echo '<br>';
      }

      $i++;
    }

  ?>

break

breakはループを強制的に中断する。

 <?php

    for ($i = 1; $i <= 1000; $i++) {
      if ($i > 500) {
        break;
      }

      echo $i;
      echo '<br>';
    }

  ?>

continue

continue文は現在の周だけをスキップし、ループそのものは継続して実行しする。

 <?php

    for ($i = 1; $i <= 1000; $i++) {
      if ($i % 3 == 0) {
        continue;
      }

      echo $i;
      echo '<br>';
    }

  ?>

foreach

foreach文とは、配列または連想配列に対して、先頭のデータから順に繰り返し処理を行う。 配列のデータを1つずつ取り出して処理を行うことができる。
「as」の後ろの値変数に、ループの度にデータが先頭から順に代入されていく。値変数の変数名はなんでもOK。

foreach文では、配列内のデータが順次「キー変数」、「値変数」に代入され、それに対して処理が繰り返される。 「キー変数」には、配列のときはインデックス番号が、連想配列のときはキーが代入される。「キー変数」の部分は省略できる。

foreach(配列 as 値変数){
	繰り返したい処理;
}
foreach(配列 as キー変数 => 値変数){
	繰り返したい処理;
}
  <?php

    $scores = array('数学' => 70, '英語' => 90, '国語' => 80);

    foreach($scores as $score){
      echo $score;
    }
    //出力結果 709080
  ?>
  <?php

    $scores = array('数学' => 70, '英語' => 90, '国語' => 80);

    // この下にforeach文を書いてください
    foreach ($scores as $key => $value) {
      echo $key.'は'.$value.'点です。';
    }
			//出力結果 数学は70点です。英語は90点です。国語は80点です。
  ?>

関数

組み込み関数

PHPの既存の関数は組み込み関数と呼ばれる。 例えば「strlen」は組み込み関数の1つで、文字列の文字数を返す。

echo strlen('PHP');

// 出力結果 3
$language = 'PHP';
echo strlen($language);

// 出力結果 3

関数の作り方

関数を作るには「function 関数名(){ 処理 }」という書く。呼び出す際は「関数名()」。

引数

関数を呼び出す際、関数に値を渡すと、関数内でその値を利用することができる。この値を「引数」と呼ぶ。引数を関数内で使うには、それを受け取るための「仮引数」を、関数の定義時に指定しておく必要がある。仮引数が複数ある場合はカンマ(,)を用いる。

  <?php
​
    // 関数hello
    function hello() {
      echo 'Hello, world!';
    }
    
    // 関数helloを呼び出し
    hello();
戻り値

関数は値を「返す」ことができ、帰ってくる値を戻り値と呼ぶ。戻り値は「return」で指定する。

 <?php
​
    // 関数getCircleArea
    function getCircleArea($radius) {
      return $radius * $radius * 3;
    }
    
    // 関数getCircleAreaを呼び出し、戻り値を変数$circleAreaに代入
    $circleArea = getCircleArea(5);
    
    // $circleAreaをechoしてください
    echo $circleArea;
    
  ?>

全然覚えてはいないが、実際に使いながら慣れていく。

コメント

タイトルとURLをコピーしました