La première option est juste pour déplacer la valeur par défaut en dehors du cas bloc et ainsi supprimer l'autre. Si vous voulez garder les conditions dans l'instruction if cela (probablement) le meilleur comme il conserve la clarté qui est perdue si vous l'ajoutez dans une instruction en utilisant l'opérateur conditionnel (ternaire).
$sort_by = 'desc'
if (isset($_GET['sort_by']) && strlen($_GET['sort_by']) > 0){
$sort_by = $_GET['sort_by'];
}
Bien que strlen ne reviendra pas moins de 0, vous pouvez supprimer le > 0
$sort_by = 'desc'
if (isset($_GET['sort_by']) && strlen($_GET['sort_by'])){
$sort_by = $_GET['sort_by'];
}
Une autre option est de déplacer tout sur une seule ligne et utiliser l'opérateur conditionnel. L'inconvénient est qu'il prend de l'ampleur (dans mon option) loin de loin et commence à mettre trop d'une ligne.
$sort_by = isset($_GET['sort_by']) && strlen($_GET['sort_by']) ? $_GET['sort_by'] : 'desc';
Si vous avez changé la fonctionnalité un peu afin que vous puissiez utiliser empty()
l'opérateur conditionnel devient utilisable en raison de la longueur réduite. Le problème est que la chaîne "0" est traitée comme étant vide.
$sort_by = !empty($_GET['sort_by']) ? $_GET['sort_by'] : 'desc';
J'aime ce dernier. –
Je pense qu'il devrait être '! Empty()' (ou changer les branches). –
@Felix Je viens de le remarquer. :) – Yacoby