🎉

はじめてのPHP

2022/04/01に公開

はじめてPHPを触ったので備忘録
主にPHP公式サイトを元にまとめ
ローカルでPHPをサクッと試す方法

実施環境
項目 詳細
PC MacBook Pro(14インチ、2021)Apple M1 Pro
OS MacOS Monterey 12.3
PHP 8.1.4
mysql Ver 8.0.28 for macos12.2 on arm64 (Homebrew)

PHPとは

名前は"Personal Home Page Tools"が短縮されてPHP toolsと呼ばれていたのが起源のよう。
今は"PHP: Hypertext Preprocessor"を再起的に略したものらしい。
広く使われているオープンソースの汎用スクリプト言語で、特に Web 開発に適しており、HTML に埋め込むことができる。

初歩的な例
<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
    </head>
    <body>
        // ここからPHP
        <?php
            echo "Hi, I'm a PHP script!";
        ?>
        // ここまで
     </body>
</html>

PHPが主に使用される場面

  • サーバサイドでのスクリプティング(メイン)
    • 必要なもの:PHPパーサ、ウェブサーバ、ブラウザ
    • PHPの主な用途。今回もここに焦点を当てる
  • コマンドラインでのスクリプティング
    • 必要なもの:PHPパーサ
    • ちょっと試しに動かすとかにいいのかも
  • デスクトップアプリケーション開発
    • 一応できるよ、くらいの様子?

環境構築

  • 一般的にはMAMPやXAMPPをいれて一括で環境設定するっぽいが、今回はちょっと試したいだけなので省略。
  • macOS Big Sur 以前はPHPが最初から入っていたらしいが、Montereyからはなくなった模様。
    そのため別途インストールが必要で、私はHomebrewからインストール。($brew install php
  • mysqlをhomebrewでinstall($brew install mysql

書き方

変数の宣言など

変数など
<?php
  // この中に書いていくのが基本
?>

<?php
  // 変数宣言
  $test = 'テスト';  
  // 表示
  echo $test;
  // 「.」で文字列結合
  echo $test.'hoge'; // 「テストhoge」が出力


  // 配列
  $array = array('test1', 'test2', 'test3');
  // 配列へのアクセス
  echo $array[0]; // 「test1」が出力


  // 関数
  function 関数名 (引数) {
    処理;
    return 返り値;
  }


  // URLクエリへのアクセス
  echo $_GET['パラメータ名'];
  // POSTのbody取得
  echo $_POST['パラメータ名'];
?>

制御構文

制御構文
<?php
  // if文
  if (条件式1) {
    条件式1が真であれば実行;
  } elseif (条件式2) {
    条件式2が真であれば実行;
  } else {
    条件式が偽であれば実行;
  }


  // for文
  for ($index = 0; $index < 5; $index++) {
    処理;
  }


  // while文
  while (条件式) {
    処理;
  }


  // switch
  switch () {
    case 条件1:
      処理;
      break;
    case 条件2:
      処理;
      break;
    default:
      処理;
  }
?>


// 制御構文はこういう書き方もできるらしい
<?php if (condition): ?>
  html code to run if condition is true
<?php else: ?>
  html code to run if condition is false
<?php endif ?>

DB接続

接続方法は大きく3つあるらしく、今回はPDOを使用

DB接続
<?php
  // DB接続設定
  $dsn = 'mysql:host=localhost;dbname=DB名;charset=utf8';
  $user = 'ユーザ名';
  $password = 'ユーザパスワード';

  // DB接続
  try {
    $db = new PDO($dsn, $user, $password);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $stmt = $db->prepare("SELECT * FROM テーブル名");
    $stmt->execute();
  } catch (PDOException $e) {
    exit("エラー:".$e->getMessage());
  }

  // 一行ずつ取得してecho
  while ($row = $stmt->fetch()):
    echo $row['プロパティ名'];
  endwhile;
?>

表示確認

  • ビルドインウェブサーバでの表示確認
    • ローカルで表示するだけなら、php -S で簡易サーバの立ち上げ可能
      • 対象ディレクトリに XXX.php ファイルを用意し、$php -S localhost:8000
      • ブラウザで http://localhost:8000/XXX.php にアクセス

所感

  • javascriptに似ている。
  • Montereyの初期バンドルから外されるなど、トレンドを見ても流行っているとは言い難いものの、気軽にDBとつなぐウェブアプリを作るには今でもよさそう。
  • 開発も継続的に行われているようで、8.1のリリースが21年11月。持続的発展のためのFoundationも設立された模様で、今後もしばらくは更新されそう。
  • フレームワークもいつか試してみたい。

参考

Discussion