変数を使って同じプログラムが重なるのを防ぐ

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);
?>