🎉
はじめてのPHP
はじめて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