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?

○○作ってみない?Advent Calendar 2023

Day 24

全然よくわかんないけど「phpでも使ってみない?」

Posted at

PHPって?

PHPというのは、Webサーバー上で動くプログラミング言語です。
Webサーバー上のリクエストに対して動的にHTMLを生成することができます。

まずは物は試しです。

なお、今回はPHPの環境構築の話は長いのでしません。

書いてみよう

<?php
echo "Hello, World";
?>

これでアクセスしてみてください。
ちゃんとHello, Worldと表示されたでしょうか。
スクリーンショット 2023-12-25 050829.png

phpではecho関数を使用することで、文字列を出力することができます。

ちょっとした計算をしてみよう

<?php
echo 1 + 1;
?>

これでアクセスしてみてください。
なんと、PHPでは計算もできるのです!

...そりゃ、プログラミング言語だからな。

変数を使ってみよう

<?php
$var = "Hello, World";
echo $var;
?>

phpではこのように$変数名とすることで変数を宣言することができます。
また、echo関数では変数をそのまま出力することができます。

配列を使ってみよう

<?php
$var = array("Hello", "World");
echo $var[0] . ", " . $var[1];
?>

phpではこのようにarray()とすることで配列を宣言することができます。
また、配列の要素には$配列名[インデックス]とすることでアクセスすることができます。
割とここら辺はそこら辺の言語と同じですね。

じゃあ応用してPHPをAPIエンドポイントとして使ってみよう

<?php
    if(isset($_GET['username'])){
        $data = array(
            'status' => TRUE,
            'content' => 'Hello, ' . $_GET['username'] . '!',
        );
    } else {
        $data = array(
            'status' => FALSE,
            'content' => 'No Username',
        );
    }
    $jsonData = json_encode($data);

    header('Content-Type: application/json');

    echo $jsonData;
?>

まず、$_GETというのは、GETリクエストのパラメータを取得するための変数です。
http://example.com/?username=exampleというURLにアクセスした場合、$_GET['username']exampleという値を持ちます。

issetでは、変数が存在するかどうかを判定することができます。
それをifで判定して、存在する場合はHello, {username}!という文字列を、存在しない場合はNo Usernameという文字列をarrayで作成した連想配列に格納します。

また、json_encodeというのは、配列をJSON形式の文字列に変換する関数です。
これを使うことで、PHPで作成した連想配列をJSON形式の文字列に変換することができます。

最後に、header関数を使うことで、レスポンスヘッダーを設定することができます。
今回はContent-Typeというレスポンスヘッダーにapplication/jsonという値を設定しています。

そしてそれをecho関数で出力することで、APIエンドポイントとして使用することができます。

スクリーンショット 2023-12-25 052925.png

こんな感じで、phpは優秀なAPIエンドポイントとして使うことができます。

まとめ

といっても私はこの記事を書くにあたって初めてPHPを触ったので、この使い方が正しいのかどうかはわかりません。
まぁでも、PHPはWebサーバー上で動くプログラミング言語なので、APIエンドポイントとして使うのは十分にありだと思います。(ってGH Copilotが言ってます。)

というわけで!!!!
ついに!!!!!!!!!!!!
2023/12/25、5:32をもって、アドベントカレンダー完走です!!!!!!!!!

というわけで、「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?