#4 PHPで学ぶ標準入力の基本

PHPにおける標準入力は、Webサイト向けの言語という性質上、他の言語とは少し違った位置づけになっています。この記事では、PHPで利用者からの入力を受け取る基本的な方法を解説します。

PHPの入力はWebフォームが基本

PHPは本来、Webサイトの裏側で動く言語のため、利用者からの入力は多くの場合、キーボードからの直接入力ではなく、Webページ上の入力フォームを通じて受け取ります。フォームから送られた内容は、$_POSTや$_GETという特別な変数に自動的に格納されます。

$name = $_POST['name'] ?? '';

フォームの項目が存在しない場合もあるため、??で既定値を用意しておくと安全です。

コマンドラインでの入力

学習用にターミナル上でPHPを動かす場合は、fgetsという機能を使うことで、キーボードからの入力を受け取れます。

echo "名前を入力してください: ";
$name = trim(fgets(STDIN));

fgetsで読み込んだ内容には改行文字が含まれるため、trimという機能で取り除くのが定番です。

数値として受け取る

数値として使いたい場合は、(int)のように型名をかっこで囲んで前に付けることで変換できます。

$age = (int) trim(fgets(STDIN));

数字ではない文字列を渡した場合は0になるため、厳密なチェックが必要な場面ではis_numeric()を先に確認するとより安全です。

複数の値をまとめて受け取る

スペース区切りで複数の値が入力される場合は、explodeで分割してから、それぞれを変換します。

$line = trim(fgets(STDIN)); // 例: "3 5"
$numbers = array_map('intval', explode(' ', $line));
echo array_sum($numbers);

PHPならではの注意点

PHPの入門書やチュートリアルを見ていると、「Webフォームからの入力」を前提にした説明と、「コマンドラインからの入力」を前提にした説明が混在していることがあります。今どちらの文脈の説明を読んでいるのかを意識しておくと、混乱を避けられます。Webフォームからの入力は、悪意のあるデータが送られてくる可能性も考慮し、そのまま信用せず検証してから使うことも重要です。

まとめ

PHPの入力は、Web開発ではフォーム経由の$_POST・$_GET、コマンドラインではfgets(STDIN)が基本です。どちらの場面を学んでいるのかを意識して学習を進めましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

PHPをもっと学びたい方には「10日でおぼえるPHP入門教室 第4版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本