2009-06-21 9 views
0

Depuis quelques mois, mon site Web était rempli d'erreurs de notification, alors j'essaie de corriger le code maintenant. Je suppose qu'il y avait une mise à jour de php. Je ne suis pas si brillante à php donc:Commutateur de déclaration et isset

switch ((isset($_GET['action']))) { 

case "delete": 
delete(); 
break; 

} 

cela ne fonctionnera pas quand j'ajoute isset. Vous ne pouvez pas utiliser isset dans une fonction?

Je ne sais pas vraiment donc je vous demande les gars qui connaissent ces choses.

acclamations

Répondre

3

C'est parce que isset retours true ou false, pas une chaîne (qui est ce qu'attendent vos case déclarations).

1

isset() renvoie bool (true ou false). Vous voulez appeler isset() avant le basculement. Exemple:

if (isset($_GET['action'])) 
{ 
    switch($_GET['action']) 
    { 
    ... 
    } 
} 
1

Vous devez vérifier isset() avant de passer au commutateur.

6

isset renvoie un booléen (voir le isset manual page). Votre cas ne fonctionnera pas, car "supprimé" n'est pas une valeur booléenne valide (il est vrai, je pense, mais toujours).

Vous devriez vérifier si elle est définie d'abord, puis passer:

if(isset($_GET['action')) { 
    switch ($_GET['action'])) { 
    case "delete": 
     delete(); 
     break; 
    } 
} else { 
    ... 
} 
0

if (isset ($ _ GET [ 'action'])) {

switch($_GET['action']){ 
     case "login": 
     $nowfile = 'pages/login.php'; 
     break; 
    } 
if (file_exists($nowfile)){ 
    include($nowfile); 
}else{ 
    echo "<b>Achtung:</b> Die file $nowfile existiert nicht"; 
} 

}