Syntaxe bizarre.

Eléphant du PHP | 97 Messages

26 nov. 2007, 16:17

Bonjour je suis entrain de lire les sources d'une classe que je souhaite utiliser, mais je ne comprend
pas la syntaxe de la ligne suivante :
$this->current_page = !empty($_GET[$this->var_page]) && is_numeric($_GET[$this->var_page]) && $_GET[$this->var_page] < $this->nb_pages + 1 ? $_GET[$this->var_page] : 1;
Plus précisement ceci
$this->nb_pages + 1 ? $_GET[$this->var_page] : 1;
Je ne sais pas, ou ne me souviens plus du role tenu par le "?" et le ":1" dans ce contexte.
Quelqu'un peut-il me l'expliquer svp ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 nov. 2007, 16:29

Dans la FAQ plus de détails :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 445 Messages

26 nov. 2007, 16:30

En fait si la page actuelle est superieur au nombre total de page alors on renvoie sur la page 1.
L'expression (expr1) ? (expr2) : (expr3) est évaluée à expr2 si expr1 est évaluée à TRUE, et expr3 si expr1 est évaluée à FALSE.

Eléphant du PHP | 97 Messages

26 nov. 2007, 16:38

Bien pratique ca dis donc :)
Merci