Marc2: Kann mir jemand den Unterschied erklären

Beitrag lesen

Hi,
ich bin gerade dabei ein Shopsystem zu erweitern. Bei der erweiterten Suche in dem Shop wird so geprüft ob mindestens ein Feld ausgefüllt ist:

  
if ((isset ($_GET['keywords']) && empty ($_GET['keywords'])) && (isset ($_GET['pfrom']) && empty ($_GET['pfrom'])) && (isset ($_GET['pto']) && empty ($_GET['pto']))) {  
 $errorno += 1;  
 $error = 1;  
}  
elseif (isset ($_GET['keywords']) && empty ($_GET['keywords']) && !(isset ($_GET['pfrom'])) && !(isset ($_GET['pto']))) {  
 $errorno += 1;  
 $error = 1;  
}  

1. Ich versteh leider beim besten Willen nicht was der Unterschied zwischen dem ersten if und dem zweiten elseif ist.

2. Warum hat der Coder bei der zweiten elseif die ! vor die Klammer gemacht?

3. Warum schreibt er immer zuerst isset() um danach zu fragen ob es empty() ist?

Hoffe sehr das mir einer von euch weiterhelfen kann.

Schöne Grüße