変数を使って同じプログラムが重なるのを防ぐ
sample4.html
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php 変数を使って同じプログラムが重なるのを防ぐ</title> </head> <body> <form action="sample4.php" method="get"> <dl> <dt>名前:</dt> <dd> <input id="my_name" type="text" name="my_name" size="35" maxlenght="255" value=""> </dd> </dl> <input type="submit" value="送信する"> </form> </body> </html>
sample4.php
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>php フォームに入力した内容を取得する!</title> </head> <body> <?php $name = htmlspecialchars($_REQUEST['my_name'],ENT_QUOTES); ?> <p>welcome to <?php print($name); ?> さん</p> <ul> <li><a href="#"><?php print($name); ?> s homepage</a></li> </ul> </body> </html>
今回は「記入された名前を二回以上使う」を考える。
違うパターン
<body> <p>ようこそ<?php print(htmlspecialchars($_REQUEST['my_name'],ENT_QUOTES)); ?> san</p> <ul> <li><a href="#"><?php print(htmlspecialchars($_REQUEST['my_name'],ENT_QUOTES)); ?> s homepage</a></li> </ul> </body>
このままでも正常に動作はする。
、、、、が同じ処理が2回でてきてるためプログラムが長くなっている、
「htmlspecialchars」ファンクションが2回実行されるため、プログラムの効率がわるくなり動作速度も遅くなる。
その為に「$変数名 = 保存したい内容;」
で一度「htmlspecialchars」ファンクションを使って無害化した名前をいったん保存して 後で使いまわすと効率がいい。
*変数名はどんな名前でもOK
変数に保存内容を入れる事を「代入」
この記述をしておけば次からは「$変数名」と記述するだでOK
練習問題1
次のプログラムの続きを作り画面表示を「10」にしなさい。
<?php $sun = 8 + 2; ?>
答え
<?php $sun = 8 + 2; print($sun); ?>