0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPを基本からまとめてみた【基礎】

Last updated at Posted at 2025-11-07

PHPとは?

  • サーバサイドで利用されているスクリプト言語で動的なweb開発に適している

スクリプト言語 : PHP Ruby Python Javascript

  • コンパイルが必要ない簡易的な言語
  • 小規模開発に適する
  • 画面にすぐに反映される

MAMP導入

  • M : Macintosh PC
  • A : Apache web server
  • M : MySql
  • P : PHP

変数

変数とは?

  • 一時的にデータを保持的る箱のこと

なぜ変数を使うのか?

  • データを使い回せる
  • あとで変更したい時に簡単に変更できる
  • 何のデータなのか他の人にわかりやすい

どんなときに変数を使うのか?

  • データを使う時には基本的に変数を使う

変数名の付け方のルール(命名規則)

  • 先頭に$マークが付くこと
  • 半角数字と_(アンダースコア)のみであること
  • $の後には数字が使えないこと
  • 大文字と小文字が区別されること
  • 他の人がわかりやすく、見やすい名前をつけること
test1.php
<?php
//変数
//ブログのタイトル
$title = "phpテスト";
$content = "PHPテストです";
$post_at = "2025/11/05";
$tag = ["PHP", "テスト", "ブログ"];
$status = true;

//定数
const ID = 1;


echo $ID;
echo $title;
echo $content;
echo $post_at;
print_r($tag);

//データ型
var_dump($title);

?>

配列

配列とは?

- 複数のデータを1つの変数に並べて保持できる箱
パターン① : array()
$blog = array(データ1,データ2,データ3,データ4,データ5);

パターン② : []PHP5.4以上だと使える
$blog = [データ1,データ2,データ3,データ4,データ5];

多次元配列とは?

  • 配列の中に複数の配列が入っている配列
test2.php
<?php
//変数
//ブログのタイトル
const ID = 1;
$title = "phpテスト";
$content = "PHPテストです";
$post_at = "2025/11/05";
$tag = ["PHP", "プログラミング"];
$status = true;

const ID2 = 2;
$title2 = "phpテスト2";
$content2 = "PHPテストです2";
$post_at2 = "2025/11/05";
$tag2 = ["PHP2", "プログラミング2"];
$status2 = true;

//ブログ①
$blog1 = array(
    'id' => ID,
    'title' => $title,
    'content' => $content,
    'post_at' => $post,
    'tag' => $tag,
    'status' => $status
);

//配列の取り出し方
//配列の中から添え字orキーを指定する
//echo $blog1['title'];

//ブログ②
$blog2 = [
    'id2' => ID2,
    'title2' => $title2,
    'content2' => $content2,
    'post_at2' => $post2,
    'tag2' => $tag2,
    'status2' => $status2
];

//var_dump($blog2);

//多次元配列
$blogs = [$blog, $blog2];

var_dump($blogs);

?>

ループ処理

ループ処理とは?

  • 設定した条件下で処理を繰り返す命令のこと
  • 設定した条件がtrueの時は繰り返し、falseの時に止まる
・while(条件){繰り返す処理};
・do{繰り返す処理}whole(条件);
・for(条件){繰り返す処理}
・foreach(配列 as 変数名)
test3.php
<?php
//変数
//ブログのタイトル
const ID = 1;
$title = "phpテスト";
$content = "PHPテストです";
$post_at = "2025/11/05";
$tag = ["PHP", "プログラミング"];
$status = true;

const ID2 = 2;
$title2 = "phpテスト2";
$content2 = "PHPテストです2";
$post_at2 = "2025/11/05";
$tag2 = ["PHP2", "プログラミング2"];
$status2 = true;

//ブログ①
$blog1 = array(
    'id' => ID,
    'title' => $title,
    'content' => $content,
    'post_at' => $post,
    'tag' => $tag,
    'status' => $status
);

//配列の取り出し方
//配列の中から添え字orキーを指定する
//echo $blog1['title'];

//ブログ②
$blog2 = [
    'id2' => ID2,
    'title2' => $title2,
    'content2' => $content2,
    'post_at2' => $post2,
    'tag2' => $tag2,
    'status2' => $status2
];

//var_dump($blog2);

//多次元配列
$blogs = [$blog1, $blog2];

//var_dump($blogs);

//ループ処理
//①バリューのみの出力
foreach ($blog1 as $blog) {
    echo $blog;
}

//②キーとバリューを出力
foreach ($blog2 as $key => $value) {
    echo $key . $value;
}

//多次元配列blogsを展開する
foreach ($blogs as $blog) {
    foreach($blog as $value){
        echo $value;
    }
}

?>

フォーム処理

PHPでフォームの値を受け取るための定義済みの変数

① $_POST・・・methodがpostの値を並列で受け取る

② $_GET・・・methodがgetの値を並列で受け取る

form.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>BlogForm</title>
  </head>
    <h2>ブログフォーム</h2>
    <form action="blog.php" method="POST">
        <p>ブログタイトル:</p>
        <input type="text" name="title" />
        <p>ブログ本文:</p>
        <textarea name="content" id="content" cols="30" rows="10"></textarea>
        <br>
        <input type="submit" value="送信" />
    </form>
  </body>
</html>
blog.php
<?php

$blog = $_POST;

foreach ($blog as $key => $value) {
    echo $key . ':' . htmlspecialchars($value, ENT_QUOTES,'UTF-8');
}
?>

HTTPとは?

  • ハイパー・テキスト・トランスファー・プロトコルの略

GETとPOSTの違い

  • GET
URLで値が送信される(クエリストリング)
http://localhost:8888/blog.php?title=こんにちは&content=こんにちは
画面表示のみや検索などで利用
  • POST
リクエストのボディにデータが入られて送られる
http://localhost:8888/blog.php
データを送る場合は基本POST
form.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>BlogForm</title>
  </head>
    <h2>ブログフォーム</h2>
    <form action="blog.php" method="POST">
        <p>ブログタイトル:</p>
        <input type="text" name="title" />
        <p>ブログ本文:</p>
        <textarea name="content" id="content" cols="30" rows="10"></textarea>
        <br>
        <input type="submit" value="送信" />
    </form>
  </body>
</html>
blog.php
<?php

$blog = $_POST;

foreach ($blog as $key => $value) {
    echo $key . ':' . htmlspecialchars($value, ENT_QUOTES,'UTF-8');
}

?>

条件分岐

ifとは?

  • 条件によって処理を分岐させる構文
  • 条件式がtrueの時に実行し、falseの時に無視する

真偽値とは?

  • 真(true)か偽(false)を示す値のこと
  • プログラミングではboolean型というデータ型を持つ
  • 通常、比較演算子の結果として制御構造に渡される
  • 比較演算子
$a == $b $aと$bが等しいとTRUE
$a === $b $aと$bが等しくかつ同じ型だとTRUE 
$a!= $b $aと$bが等しくないとTRUE 
$a < $b $aと$b未満だとTRUE
$a <= $b $aが$b以下だとTRUE
form.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>BlogForm</title>
  </head>
    <h2>ブログフォーム</h2>
    <form action="blog.php" method="POST">
        <p>ブログタイトル:</p>
        <input type="text" name="title" />
        <p>ブログ本文:</p>
        <textarea name="content" id="content" cols="30" rows="10"></textarea>
        <br>
        <input type="radio" name="publish_status" value="publish" />公開
        <input type="radio" name="publish_status" value="un_publish" />非公開
        <br>
        <input type="submit" value="送信" />
    </form>
  </body>
</html>
blog.php
<?php

$blog = $_POST;

if($blog["publish_status"] == "un_publish") {
    
foreach ($blog as $key => $value) {
    echo $key . ':' . htmlspecialchars($value, ENT_QUOTES,'UTF-8');
    }

} elseif($blog['publish_status'] === 'publish') {
    echo '記事がありません。';

} else {
    echo '記事がありません。';
}

?>

HTML埋め込み

下記の2つのルールを守るだけで埋め込める

  • HTML内で、PHPを使いたい箇所をで囲んで記述
  • ファイルの拡張子を.phpとする
form.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>BlogForm</title>
  </head>
    <h2>ブログフォーム</h2>
    <form action="blog.php" method="POST">
        <p>ブログタイトル:</p>
        <input type="text" name="title" />
        <p>ブログ本文:</p>
        <textarea name="content" id="content" cols="30" rows="10"></textarea>
        <br>
        <p>投稿日:</p>
        <input type="date" name="post_at" />
        <br>
        <p>カテゴリ:</p>
        <select name="category_id">
            <option value="日常">日常</option>
            <option value="仕事">仕事</option>
        </select>
        <br>
        <input type="radio" name="publish_status" value="publish" checked/>公開
        <input type="radio" name="publish_status" value="un_publish" />非公開
        <br>
        <input type="submit" value="送信" />
    </form>
  </body>
</html>
blog.php
<?php

$blog = $_POST;

if($blog["publish_status"] === "un_publish") {
    echo '記事がありません。';
    return;
}

// if($blog["publish_status"] === "un_publish") {
    
// foreach ($blog as $key => $value) {
//     echo $key . ':' . htmlspecialchars($value, ENT_QUOTES,'UTF-8');
//     }

// } elseif($blog['publish_status'] === 'publish') {
//     echo '記事がありません。';

// } else {
//     echo '記事がありません。';
// }
// ?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ブログ</title>
</head>
<body>
    <h2><?php echo htmlspecialchars($blog['title'],ENT_QUOTES,'UTF-8'); ?></h2>
    <p>投稿日:<?php echo htmlspecialchars($blog['post_at'],ENT_QUOTES,'UTF-8'); ?></p>
    <p>カテゴリ:<?php echo htmlspecialchars($blog['category'],ENT_QUOTES,'UTF-8'); ?></p>
    <br>
    <p><?php echo htmlspecialchars($blog['content'],ENT_QUOTES,'UTF-8'); ?> ?></p>
</body>
</html>

参考サイト

【PHP入門 総集編】 2時間で一気に学ぶPHPの基礎!~初心者向け~

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?