忍者ブログ

からすまる日誌

2020010703 足し算機

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2020010703 足し算機

教科書p85
これをソースコードで見ると謎の空欄があるがそれはこの部分の反映 
 
 

 <?php
 $num1=10;
 $num2=3;
 $result=$num1+$num2;
 $num1=20;
 echo "result=". $result;
 ?>
 
この結果は?
 
result=13
 
ですね。
 


足し算機をつくりますよ
入力してもらった数値を足しますよ
 
さてinputタイプに「文字列」だったらtext、数値だったら?
→number
 
がわはこんなで

 
受け取り側のphpも作りましょう
 
先に受け取ったものをどう表示させたいかをhtmlで作るのがいいらしい
表示させたい形を先に作る
 
どういうことかというと、
 
 <h1>2+8の結果は</h1>
 <p>10です</p>
 
こう打っておく。
「最終的にこうしたいよ」というのを作って、そこに変数を当てはめるとよい
 
いつもbodyに書いているから今回一番上に記述しますか
 
--->result.php(途中)
<?php
 $left=$_GET["left"];//送られてきた左辺
 $right=$_GET["right"];//右辺
 $result=$left+$right;//計算結果
?>
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="UTF-8">
 <title>足し算機結果</title>
 <link rel="stylesheet" href="test1.css">
</head>
<body>
 <h1>2+8の結果は</h1>
 <p>10です</p>
 
</body>
</html>
 
こういうコードの形から始めるのだ
 

それからおもむろに変数に当てはめて修正する
 
<body>
 <h1><?php echo $left ?>+<?php echo $right ?>の結果は</h1>
 <p><?php echo $result ?>です</p>
 
</body>
 
 
phpの変数のスコープの範囲は、冒頭に書いてあってもbodyに書いてあってもhtml全体であるらしいよ。
 
--->input.html
 
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="UTF-8">
 <title>tashizan-machine</title>
 <link rel="stylesheet" href="test1.css">
</head>
<body>
 <h1>足し算機</h1>
 <form action="result.php" method="get">
  <input type="number" name="left">
  +
  <input type="number" name="right">
  <input type="submit" value="=">
 </form>
</body>
</html>
 
--->result.php
 
<?php
 $left=$_GET["left"];//送られてきた左辺
 $right=$_GET["right"];//右辺
 $result=$left+$right;//計算結果
?>
<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="UTF-8">
 <title>足し算機結果</title>
 <link rel="stylesheet" href="test1.css">
</head>
<body>
 <h1><?php echo $left ?>+<?php echo $right ?>の結果は</h1>
 <p><?php echo $result ?>です</p>
 
</body>
</html>
 
なおinputタイプがnumberになっていると、入力ボックスに△▽が出るのは仕様ですよ。便利だね。
 

これもしinput typeがかたっぽテキストだったら?
 
Warning: A non-numeric value encountered in C:\xampp\htdocs\php\20200107\result.php on line 4
たかし+50の結果は
50です
 
おわかりかな?
これが型宣言のないphpのこわいところ
エラーが出るようにしているからわかるが。
文字列が0として扱われたのだ。
 
もっと困るのがこれ
 
Notice: A non well formed numeric value encountered in C:\xampp\htdocs\php\20200107\result.php on line 4
50たかし+50の結果は
100です
「50たかし」と「50」を足すと100と表示されるのだ
 

両方typeをtextにしたってこうだ
 
Warning: A non-numeric value encountered in C:\xampp\htdocs\php\20200107\result.php on line 4
Warning: A non-numeric value encountered in C:\xampp\htdocs\php\20200107\result.php on line 4
こざき+たかしの結果は
0です
 
両方のテキストが0として扱われた
 

何も入力しないで送信ボタンを押すと?
 
Warning: A non-numeric value encountered in C:\xampp\htdocs\php\20200107\result.php on line 4
Warning: A non-numeric value encountered in C:\xampp\htdocs\php\20200107\result.php on line 4
+の結果は
0です
 
こうですよ
やはりエラーが出る
条件分岐でフォローするしかない
 

タイプnumberは整数のみなので小数いれてもエラーになりますよ
属性で追加すると小数OKになる
PR

コメント

ブログ内検索

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30