PHP

PHPのfgets(STDIN)ってなに?Paizaで学習するとき最初につまづくやつ

僕は、プログミングをこれから始めてみようと思っている方には「Progate」と「Paiza」をオススメしています。

しかし、Paizaの問題を解こう!となったとき

ん?何これ?

ってなるのがfgets(STDIN)という謎の記述です笑

今回はfgets(STDIN)についてざっくり解説します!

この記事を見れば、Paizaの問題集をどんどん進められるようになりますよ!!

1. とりあえず結論

fgets(STDIN)という記述をするということは

データを取得することができる

ということなんですよね!

、、、これだと意味がわからないと思いますので、具体例を用いて説明します!

2. 具体例

例えば、あなたは今からカレーを作ろうとしています。

そこでまずやることはなんでしょうか??

そうです、

ジャガイモとにんじんと玉ねぎを冷蔵庫から取ってくる

ですよね!

材料がないと料理(処理)を始めることができません。

fgets(STDIN)はこれと同じと思ってもらえるとイメージしやすいのではないかなと。

仮に、

1 + X(エックス)

という処理をプログラムで書こうとするとき、このXにあたる部分の材料(データ)を取ってこないと処理ができません。

なぜなら、手元にはXという材料(データ)がないからです。

もし、このXが数字の「3」だったとしたら、こんな感じのプログラムを書くことになります!!

<?php

//fgets(STDIN)で3という数字を取得し、$xに代入する。
$x = fgets(STDIN);

//やりたい処理が「1 + X」の場合
$answer = 1 + $x;

//echoを使って答えを出力
echo $answer;
このコードの実行結果はこちら
4

3. 入力値とは?

もうお気づきかと思いますが、念のため補足説明しておきます!!

Paizaで出てくる「入力値」ってやつですが、

これは上の例でいうところの

ジャガイモとか、にんじんとか、玉ねぎ

のことです。

つまり材料(データ)です。

これがないと料理(処理)ができない、ということです。

fgets(STDIN)で取得できる材料(データ)は問題によって異なります!

「どの材料を取得するか」というのは、システムの裏側で設定してるので、あまり深く考えず、「とりあえずfgets(STDIN)して材料を取ってくる」くらいの感覚でいいと思います^^