0
$url = isset($_GET["url"]) ? $this->checkValues($_GET["url"]) : $this->jDie();
$query = $this->query("SELECT * FROM `torrents` WHERE `url` = '".$url."'");
$fetch = $this->fetch($query) or $this->rURL('/#invalid-url');  

バージョン 1:

<label><input type="checkbox" name="age" value="3" '.($this->contains("3", $fetch['age']) ? 'checked="checked"' : '').' class="age"/><span>3+</span></label>
<label><input type="checkbox" name="age" value="7" '.($this->contains("7", $fetch['age']) ? 'checked="checked"' : '').' class="age"/><span>7+</span></label>
<label><input type="checkbox" name="age" value="12" '.($this->contains("12", $fetch['age']) ? 'checked="checked"' : '').' class="age"/><span>12+</span></label>

バージョン 2:

$age = $fetch['age'];

[...]

<label><input type="checkbox" name="age" value="3" '.($this->contains("3", $age) ? 'checked="checked"' : '').' class="age"/><span>3+</span></label>
<label><input type="checkbox" name="age" value="7" '.($this->contains("7", $age) ? 'checked="checked"' : '').' class="age"/><span>7+</span></label>
<label><input type="checkbox" name="age" value="12" '.($this->contains("12", $age) ? 'checked="checked"' : '').' class="age"/><span>12+</span></label>

どちらが良いですか?

4

2 に答える 2

2

君による。$this->fetch(query) がスクラブや検証を実行しない場合、$_GET[] または $fetch に到達することは基本的に同じことです。$_GET[] に到達してサニタイズされていない入力を使用することは、バグや脆弱性につながる可能性があるため、通常は軽視されます。

于 2013-01-31T18:23:49.983 に答える
1

どのバージョンのコードを作成するかを決定する際には、代わりに一連の質問を自問することをお勧めします。

  1. 1 つのバージョンで何らかのパフォーマンス上のメリットが得られるか?
  2. あるバージョンは他のバージョンよりも読みやすいですか?
  3. あるバージョンは別のバージョンより保守しやすいですか?

#1の場合、どちらも本質的に同じです。2番目のバージョンで新しい変数を宣言していますが、これはパフォーマンスにわずかな影響を与えますが、追加のクエリを実行したり、リモートファイルを読み取ったりするほどではありません。これにより、最初のバージョンにもっと傾くようになりますが、すべてのコードに戻って、不要な宣言済み変数のすべてのインスタンスを削除してパフォーマンスを改善しようとするわけではありません。

#2 についても、上記のコードでは両方が本質的に同じです。一方、多くの s を実行していた場合は、変数を宣言する方が読みやすいためecho、変数を宣言することを選択することをお勧めします。

echo "You have $num $currency remaining in your $where";

読むよりも:

echo 'You have ' . $fetch['num'] . ' ' . $fetch['curency'] . ' remaining in your ' . $fetch['where'];

しかし、いずれにせよ、それは大したことではありません。

#3 については、これは非常に小さくて重要ではないため、実際には当てはまりません。ただし、 を使用する場合$fetch、コードを保守している人は、常に新しい変数を定義している場合よりも、変数がどこから来たのかについて少し良い考えを持っているので、最初の変数に傾倒しますが、大したことではありません。

于 2013-01-31T18:51:31.803 に答える