2010-07-30 4 views
0

je veux juste savoir par le code ci-dessous ce que ? et : spécifient, j'apprécierais que quelqu'un m'explique le code ci-dessous. merciune simple question de syntaxe php

$country = empty($_POST['country']) ? die ("ERROR: Enter a country") : mysql_escape_string($_POST['country']); 
+0

double possible de [petite question de syntaxe php] (http : //stackoverflow.com/questions/889373/quick-php-syntax-question) Allez, c'est presque le même titre;) –

Répondre

3

Il est appelé ternaire opérateur et est tout simplement sténographie de ce code:

if (empty($_POST['country'])) 
{ 
    die ("ERROR: Enter a country"); 
} 
else 
{ 
    $country = mysql_escape_string($_POST['country']); 
} 

Syntaxe:

condition ? used if true : used if false; 

Ou vous pouvez faire des missions:

variable = condition ? used if true : used if false; 

Plus d'info:

http://www.tuxradar.com/practicalphp/3/12/4

+0

merci je m'attendais à une réponse comme ça, je ne suis pas habitué à sténo .. merci vous pour cette réponse ..:) –

+0

Bonne réponse, +1, mais vous avez oublié d'ajouter '$ country =' au bloc 'else' –

+0

@Igor Zinov'yevL Oui j'ai oublié d'ajouter cela, merci :) – Sarfraz

1

Je suppose que ce script accepte les données d'un formulaire envoyé par la méthode POST. Si la variable country est vide, quittez le script avec un message d'erreur.

mysql_escape_string($_POST['country']);

Cette fonction doit renvoyer la valeur échappé variable donnée. Par conséquent, il doit être écrit comme ceci

$country = mysql_escape_string($_POST['country']);

Plus d'infos ici: http://php.net/manual/en/function.mysql-escape-string.php

1
$country = empty($_POST['country']) ? 
      die ("ERROR: Enter a country") : 
      mysql_escape_string($_POST['country']); 

Si l'expression empty($_POST['country']) évalue à true, puis die ("ERROR: Enter a country") sera évalué (et là sult sera affecté à $country, mais pour le fait que die() arrête l'exécution du script).

D'autre part, si empty($_POST['country']) est évaluée à false, puis mysql_escape_string($_POST['country']) sera évalué, et le résultat sera affecté à $country.

+0

Salut, dans l'autre condidtion i vouloir faire écho quelque chose comme un lien pour revenir à la page d'index, j'ai essayé d'utiliser la concaténation et il ne se passe pas .. vérifier la dernière chaîne $ user = empty ($ _ POST ['user'])? die ("Erreur: Veuillez entrer le nom d'utilisateur"): mysql_escape_string ($ _ POST ['user']). echo "$ _SERVER ['PHP_SELF']"; comment puis-je y parvenir ?? –

+0

Je ne suis pas sûr de ce que vous voulez réaliser. Si vous utilisez '$ user = empty ($ _ POST ['user'])? die ("Erreur: Veuillez entrer le nom d'utilisateur"): mysql_escape_string ($ _ POST ['user']). $ _ SERVER ['PHP_SELF']; 'en supposant que l'appel de' empty() 'renvoie false,' $ User' sera 'mysql_escape_string ($ _ POST ['utilisateur'])' concaténé avec '$ _SERVER ['PHP_SELF']'. Si vous voulez réellement faire écho à quelque chose de conditionnel, peut-être que ce serait mieux pour vous d'adopter une approche 'if ... else'. – Hammerite

1

Il est condition de test: si la variable de formulaire HTML est vide puis imprimer "ERREUR: Entrez un pays", autre variable initialisée pays caractères sûrs ..