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