教科書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になる