標準入力
テクノロジ系 / hello (PHP の最小単位)
標準入力
Lesson 1 / Chapter 8
標準入力とは
- ターミナルやファイルから プログラムに値を渡す 仕組み
- これまでは
echoで出すだけだった - 入力を受け取れると 対話するプログラム が書ける
実行イメージ:
$ echo "太郎" | php hello.php こんにちは 太郎 さん
fgets(STDIN) で 1 行読む
<?php $line = fgets(STDIN); echo $line;
STDIN= 標準入力fgets(STDIN)で 改行までの 1 行 を読み取る- 読んだ結果は 文字列 として変数に入る
改行が残るので trim() で取る
<?php $line = fgets(STDIN); echo "[" . $line . "]\n"; // 改行残り echo "[" . trim($line) . "]\n"; // 改行除去
入力が 太郎 のとき:
[太郎 ] [太郎]
fgetsは 末尾の改行を含めて 返すtrim()で改行や前後の空白を取り除く- 入力を扱う時はほぼ毎回
trim()する
数値として計算したい時は (int) で変換
<?php $line = fgets(STDIN); $n = (int) trim($line); echo $n + 1; echo "\n";
入力が 5 のとき出力は 6。
fgetsで読んだ値は 文字列"5" + 1でも一応動くが、明示的に(int)で変換する(int)は「整数に直して」という意味
複数行の入力を読む
<?php $a = (int) trim(fgets(STDIN)); $b = (int) trim(fgets(STDIN)); echo ($a + $b) . "\n";
入力:
3 5
出力:
8
fgets(STDIN)を 入力の行数だけ 呼ぶ- 各行を
trim()して(int)で数値化
このチャプターでできるようになること
✅ fgets(STDIN) で 1 行入力を読める
✅ trim() で改行を取り除ける
✅ (int) で文字列を整数に変換して計算できる
✅ 複数行の入力を順に読める
→ ドリルへ
考えてみよう
既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。
ドリル 02 — 入力された 2 つの整数を足す
問題
標準入力で 2 行 受け取り、それぞれを整数として読み、合計を出力してください。
入力例:
3 5
期待される出力:
8
採点
php scripts/grade.php topics/hello/ch08-input/drill/02-add-input/
ヒント
fgets(STDIN)を 2 回 呼んで 2 行読む- 各行を
trim()して(int)で整数に変換する $a + $bの結果を"\n"を付けて出力する