0
0

More than 1 year has passed since last update.

PHP入門 その1

Last updated at Posted at 2022-08-19

はじめに

PHPの書き方についてまとめてみました。

検証に使用した環境

PHP:7.2

PHPの書き方

PHPはHTMLに埋め込んで使うことができます。
<?php 〜 ?>の中に具体的な処理を書いていきます。

例えば

例)ソースの状態のphpファイル

<html>
  <body>
    <?php echo '<h1>タイトル</h1>'; ?>
  </body>
</html>

レンダリング後

<?php 〜 ?>内で実装したh1タグがhtmlに変換されて表示されました。

<html>
    <body>
        <h1>タイトル</h1>
    </body>
</html>

コメント

「//」で記述すると行末までコメントとして扱われます。

<?php
  // コメント
  echo '<h1>コメントサンプル</h1>';
?>

変数

変数名は、先頭に「\$」からはじめます。
※変数名は、先頭文字に数字は使えません。($1hogeなど)

例)変数に「hogehoge」を格納する

<?php
  $hoge = 'hogehoge';
?>

文字列の出力

「echo」で文字列を出力できます。
文字列はシングル、またはダブルクォーテーションで括ります。

<?php
  echo '<h1>シングルクォーテーション</h1>'; 
  echo "<h1>ダブルクォーテーション</h1>";
?>

文字列を結合する

「.」を挟むことで、文字列や変数を結合することができます。

<?php
  // 文字列同士を連結した場合
  echo 'hoge'.'hoge'; // hogehogeと表示される

  // 変数と文字列を連結した場合
  $hoge = 'hoge';
  echo $hoge.'hoge'; // hogehogeと表示される
?>

省略形

「.=」で連結した文字列を再代入できます。

<?php
  $hoge = 'hoge';
  $hoge .= 'hoge';
  echo $hoge; // hogehogeと表示される
?>

変数展開

ダブルクォーテーションで囲んだ文字列の場合、変数を{}で囲むと変数の格納内容が展開されて出力されます。
シングルクォーテーションで囲んだ文字列の場合、変数を{}で囲むと変数名がそのまま出力されます。

<?php
  $hoge = 'hogehoge';
  echo "{$hoge}"; // hogehogeと表示される
  echo '{$hoge}'; // {$hoge}と表示される
?>

演算子

<?php
  // 足し算
  echo 1 + 1; // 結果:2

  // 引き算
  echo 1 - 1; // 結果:0

  // 掛け算
  echo 2 * 3; // 結果:6

  // 割り算
  echo 6 / 2; // 結果:3

  // 除算
  echo 7 % 2; // 結果:1
?>

省略形

変数を利用した計算結果を再代入する場合、省略形を使うこともできます。

例)$hogeに1を足して再代入したい場合

<?php
  // 通常だと
  // $hoge = $hoge + 1;  

  // 省略形
  $hoge += 1;  
?>

インクリメント・デクリメント

変数に+1、または-1したい場合、インクリメント・デクリメントを使用できます。

<?php
  // インクリメントで+1
  $hoge++;  

  // デクリメントで-1
  $hoge--;
?>

記載位置の違い

++を変数の前に記述すると、+1してから当行の命令文を実行し、
++を変数の後に記述すると、当行の命令文を実行してから+1します。
※--も同様

<?php
  $hoge = 1;

  // +1されてからechoするため、2が表示されます
  echo ++$hoge;
?>
<?php
  $hoge = 1;

  // echoされてから+1するため、1が表示されます
  echo $hoge++;  
?>

条件分岐

if文

条件分岐にはif文を使います。

<?php
  $hoge = 1;
  if ($hoge > 0) {
    echo "条件に該当しました!";
  }
?>

比較演算子

比較演算子 比較内容
<  左辺は右辺より小さいか?
<=  左辺は右辺より小さい、または同じか?
>  左辺は右辺より大きいか?
>=  左辺は右辺より大きい、または同じか?
==  左辺と右辺は等しいか?
!=  左辺と右辺は等しくないか?

複数条件

and条件の場合は「&&」、or条件の場合は「||」で各条件を繋げます。

<?php
  $hoge = 1;
  
  // $hogeが0より大きく、かつ10未満の場合
  if ($hoge > 0 && $hoge < 10) {
    echo "条件に該当しました!";
  }

  // $hogeが0、または1の場合
  if ($hoge == 0 || $hoge == 1) {
    echo "条件に該当しました!";
  }
?>

条件の反転

条件式を()で囲み、「!」を先頭に記述することで、対象の条件に式の反転を実現できます。

<?php
  $hoge = -1;
  if (!($hoge > 0)) {
    echo "条件に該当しました!";
  }
?>

else

if文の条件に該当しない場合の処理はelse、elseifで記述します。

<?php
  $hoge = 1;
  if ($hoge > 0) {
    echo "ifの条件に該当しました!";
  } elseif ($hoge == 0) {
    echo "elseifの条件に該当しました!";
  } else {
    echo "どの条件に該当しませんでした!";
  }
?>

switch文

switch文を使うと、複数の条件分岐を記述できます。
switch()で指定した変数等がcaseで指定した各条件に該当する場合、case以下の処理を実行します。
もし、どのcaseにも該当しない場合、default以下の処理を実行します。

[注意]
case以下の処理には、それぞれ「break」を入れてください。
「break」が無い場合、次のcase以下の処理も実行されてしまいます。

<?php
  $hoge = 1;
  switch ($hoge) {
    case 0:
      echo "0に該当しました。";
      break;
    case 1:
      echo "1に該当しました。";
      break;
    case 2:
      echo "2に該当しました。";
      break;
    default:
      echo "どれにも該当しませんでした。";
      break;
  }
?>

配列

array()で、配列を定義することができます。

<?php
  // 配列を定義
  // array()だけで空の配列を作成し、引数を渡すと初期値として設定してくれます。
  $hoges = array('hoge1','hoge2','hoge3');
  
  // 配列の0番目の値を取得し、出力する
  echo $hoges[0];
  
  // 配列内の要素を別の値に変更する
  $hoges[0] = 'newHoge1';

  // 配列の最後に要素を追加する
  $hoges[] = 'hoge4';
?>

配列の要素数を取得する

配列に格納されている要素の数を取得するには、count()を使用します。

<?php
  // 配列を定義
  $hoges = array('hoge1','hoge2','hoge3');
  
  // 配列の要素数を取得し、出力する
  echo count($hoges);
?>

連想配列

配列と同様に複数のデータを扱えます。
連想配列では、キーとなる文字列を指定して個々の要素を管理します。

<?php
  // 連想配列を定義する
  $hoges = array(
            'key1' => 'value1',
            'key2' => 'value2',
            'key3' => 'value3');

  // 連想配列の中身を取得する
  echo $hoges['key1'];

  // 連想配列に要素を追加する
  $hoges['key4'] = 'value4';
  echo $hoges['key4'];
?>

連想配列の要素数を取得する

連想配列に格納されている要素の数を取得するには、配列と同様にcount()を使用します。

<?php
  // 連想配列を定義
  $hoges = array(
            'key1' => 'value1',
            'key2' => 'value2',
            'key3' => 'value3');
  
  // 連想配列の要素数を取得し、出力する
  echo count($hoges);
?>

繰り返し

for文

繰り返し処理はfor文で記述します。
記述方法は以下の通り。

for ( 初期化処理 ; 繰り返し条件 ; 変数の更新処理) {
  繰り返す 処理
}
<?php
  $hoges = array('hoge1','hoge2','hoge3');
  for ($i = 0; $i < count($hoges); $i++) {
    echo $hoges[$i];
  }
?>

意図的な無限ループとbreak文

for文に記述する初期化処理、繰り返し条件、変数の更新処理は、それぞれ省略が可能です。
そのため、以下のように無限ループを実装し、繰り返し処理の中でbreak文で抜けることも出来ます。

<?php
  $hoges = array('hoge1','hoge2','hoge3');
  $i = 0;
  for (; ;) {
    if ($i >= count($hoges)) {
      break;
    }
    echo $hoges[$i];
    $i++;
  }
?>

continue文

continue文を使うことで、continue文以降の繰り返し処理をスキップ出来ます。

例)1番目の配列要素はスキップし、各要素を出力する

<?php
  $hoges = array('hoge1','hoge2','hoge3');
  for ($i = 0; $i < count($hoges); $i++) {
    if ($i == 0) {
      continue;
    }
    echo $hoges[$i];
  }
?>

while文

while文でも繰り返し処理を記述できます。
while文に記述する条件式がtrueの間、処理を繰り返します。

for文と違い、初期化処理、変数の更新処理はないため、while文の内外で意図しない無限ループにならないように注意が必要です。

<?php
  $hoges = array('hoge1','hoge2','hoge3');
  $i = 0;
  while ($i < count($hoges)) {
    echo $hoges[$i];
    $i++;
  }
?>

foreach文

配列、連想配列の要素を先頭から順に取り出して処理を繰り返します。
「as」の後に定義された変数に、各繰り返し処理で取り出された要素が代入されます。

<?php
  $hoges = array('hoge1','hoge2','hoge3');
  foreach ($hoges as $hoge) {
    echo $hoge;
  }
?>

キー変数

foreach文の各繰り返し処理では、配列(連想配列)の内容とキー変数、値変数にそれぞれ代入されます。
値変数には要素そのものが入り、
キー変数には、配列ではインデックス、連想配列ではキーが代入されます。
※キー変数は省略可能です。

<?php
  $hoges = array('hoge1','hoge2','hoge3');
  foreach ($hoges as $index => $hoge) {
    echo "インデックス番号:".$index."、要素:".$hoge."<br>";
  }
?>

関数

組み込み関数

PHPには、最初から組み込まれている関数があります。

指定した文字列の文字数を返す strlen(arg)

例)「hoge」の文字数である4を出力する

<?php
  echo strlen("hoge");
?>

配列の要素数を返す count(arg)

例)「hoges」配列の要素数である3を出力する

<?php
  $hoges = array('hoge1','hoge2','hoge3');
  echo count($hoges);
?>

配列の要素数を返す count(arg)

例)1〜10でランダムな整数を出力する

<?php
  echo rand(1, 10);
?>

関数を定義する

以下の形式で関数を定義することが出来ます。

<?php
  function 関数名(引数1, 引数2, ....) {
    return 返り値; // 省略可
  }
?>

例)関数を呼び出して配列の各要素を改行しながら出力する

<?php
  // 関数を定義
  function echoWithBr($arg) {
    $ret = $arg."<br>";
    echo $ret;
    return $ret;
  }

  $hoges = array('hoge1','hoge2','hoge3');
  foreach($hoges as $hoge) {
    // 関数を呼び出す
    echoWithBr($hoge);
  }
?>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0