-1

パフォーマンスに関する質問があります。4つの異なるページを構成しましたisset($_GET[""])

それらを呼び出しましょう

Menu1
Menu2
Menu3
Menu4

私の質問は、ページがたとえば Menu1 ( index.php?Menu1) に設定されている場合、設定されていなくても、PHP は Menu2、3、および 4 のコードをまだロードしていますか?

もしそうなら、これは非常に悪い構造であり、大量のトラフィックが発生するとWebサイトの速度が低下すると思います.これらのメニューのいくつかではmysqlを使用しているためです.

前もって感謝します!

4

2 に答える 2

1

と言うとif(isset($stuff))、条件内のコードは $stuff が設定されている場合にのみ実行されます

を持っていてif(isset($_GET['menu1'])、 に行く場合はindex.php?menu1=something

other if 内のすべてのコードは決して実行されません。条件のみがチェックされます。

于 2013-09-29T15:50:20.290 に答える
1

isset は変数のみを評価し、関数も関数の戻り値も許可されません。PHPマニュアル(isset)から:

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// The key 'hello' equals NULL so is considered unset
// If you want to check for NULL key values then try: 
var_dump(array_key_exists('hello', $a)); // TRUE

// Checking deeper array values
var_dump(isset($a['pie']['a']));        // TRUE
var_dump(isset($a['pie']['b']));        // FALSE
var_dump(isset($a['cake']['a']['b']));  // FALSE

AND 演算子を使用して複数の条件を if ステートメントに入れると、if ステートメントは、最初の false 条件が見つかるとすぐに評価を停止します。次の例では、foo() は呼び出されません。

$a = (false && foo());
$c = (false and foo());

同様の方法で、評価する isset に複数のパラメーターを与えることができます。マニュアルには、「複数のパラメーターが指定されている場合、 isset() は、すべてのパラメーターが設定されている場合にのみ TRUE を返します。評価は左から右に進み、設定されていない変数が検出されるとすぐに停止します。」:

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b));  // TRUE

unset ($a);

var_dump(isset($a));      // FALSE
var_dump(isset($a, $b));  // FALSE
于 2013-09-29T16:02:00.837 に答える