PHPでも型を意識するのは大事

paizaの問題で、なかなか気付けないミスがあったので書きます。

※paizaでは、問題の答えを掲載することは禁止されているので、ある程度ぼかして話します。

問題

問題の内容は、株の収支を計算するというもので、

で標準入力から値をもらって、コードを書き進めました。

ただ、途中で

というごくごくありふれたif文を書いたときに、なぜかそれが意図した通りに動作しませんでした

Googleで色々調べたり、コードと睨めっこをしてようやくなにが原因か気が付きました。

型の宣言ができていない

それは、変数の型が宣言できていないということです。

気付いたきっかけは、$A>=10 と書いて条件を変えたり、var_dumpやecho でとにかくどこが間違っているかを出力しながら検討していた時です。

$Aも$Bもどうやらデータ型がString、文字型になっていたようです…。

両方とも値を配列にいれたり、なんやかんやしてたのでデータ型がちゃんとできてなかったようです。

PHPは変数などを扱うときに、特に宣言をしなくていいですが、今回はその機能のせいで頭を悩まされました。

解決策

変数に(int)を使って、整数型を宣言すると意図した通りに処理されました。

簡単なことですが、割とドツボにはまりました…。


メッセージ

CAPTCHA