質問: 0とでたり、そもそも何も変わらなかったりで、どこに書けばいいのかわからなくてここ3日間悩んでます。 補足情報 マシンはmac yosemiteです。 環境はgoogle chromeで、テキストエディタはATOMです。 あとMAMPも使っています。
回答: 初心者の方なようなので、簡潔に。 答 == こうするのが正解です。 ifのところに`preg_match("/^[0-9]+$/", $num)`を入れています。 ``` 電卓を作ろう 計算してみよう! >+ >- >* >/ ``` 解説 === `preg_match("/^[0-9]+$/", $num)` こいつは一体何なのか?というと、「正規表現」というもので、 文字列又は数列がマッチングしている否かを考えています。 あ、分かりにくい? 砕いて言いますと、 **ある決まりごと通りに、値が変数に入っているかどうかを判別している**のです! 今回の場合、 `/^[0-9]+$/` は、 / → 正規表現の始まりと終わり ^ → 行の始まり [0-9] → 0~9の数値 + → 直前の文字の繰り返し $ → 行の終わり ということなので、 最初から最後まで全部数値の場合はマッチしている!(1を返す)という、法則を使っています。 なので、 `preg_match("/^[0-9]+$/", $num)` と、 `preg_match("/^[0-9]+$/", $num1)` が、両方1......つまり、`$num`と`$num1`の両方が数値のみならば、計算を開始するというふうになります。 蛇足 === PHPには、全角を半角に治すという、素晴らしい関数が用意されておりまして...... `$num = mb_convert_kana($num, "n", "UTF-8")`