DRYとは?
Don't Repeat Yourself ⇒ 特にコンピューティングの領域で、重複を防ぐ考え方である。この哲学は、情報の重複は変更の困難さを増大し透明性を減少させ、不一致を生じる可能性につながるため、重複するべきでないことを強調する。
・同じ処理が二度以上出てくる場合は関数にまとめる。
・同じ値が二度以上出てくる場合は変数に代入する。
この二つを徹底することが有能なプログラマーへの道。
formタグのinputのname属性を指定することでPHPで値を使えるようにする。
例:
index.php
<form method="post" action="form.php">
<input type="text" name="item">
<input type="submit" value="計算">
</form>
form.php
<?php
function t( $n ){
echo floor( $n * 1.08 );
}
function h( $s ){
return htmlspecialchars( $s );
}
?>
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>計算結果</title>
</head>
<body>
<h1>計算結果</h1>
商品1:<?php echo h( $_POST[ "item" ] ); ?>の税込価格は<?php t( $_POST[ "item" ] ); ?>円です。<br>
</body>
</html>
セキュリティー上、htmlspecialcharsを$_POST[ "item" ]の前につけてあげることで外部からのスクリプトを無効化できる。(<script>alert("test");</script>などをinputタグなどに入力するとスクリプトが実行されてしまうので、htmlspecialcharsで無効化。)
現場などでは関数にしておくことが多い。
例:
<?php
function h( $s ){
return htmlspecialchars( $s );
}
?>
formをきっかけに問題は起こる ⇒ formは外部からアクセスできるため。
なぜWebを使うか?
距離を短縮できる。
例:お店に行かなくてもパソコン上でものが買える。
処理をコンピューターがしてくれる。
例:自動販売機は店員の代わりにジュースを売ってくれる。