Bonjour,
Peut-on faire plus court ?
switch ($_GET['pof']) :
case $_GET['pof'] = flambys :
$title_page = $menu[flambys][title];
$adresse = $infos[flambys][description];
$key = $infos[flambys][keywords];
break;
case $_GET['pof'] = poivre :
$title_page = $menu[poivre][title];
$adresse = $infos[poivre][description];
$key = $infos[poivre][keywords];
break;
case $_GET['pof'] = rose :
$title_page = $menu[rose][title];
$adresse = $infos[rose][description];
$key = $infos[rose][keywords];
break;
case $_GET['pof'] = espoir :
$title_page = $menu[espoir][title];
$adresse = $infos[espoir][description];
$key = $infos[espoir][keywords];
break;
case $_GET['pof'] = oeuf :
$title_page = $menu[oeuf][title];
$adresse = $infos[oeuf][description];
$key = $infos[oeuf][keywords];
break;
endswitch;
Merci.
Salut, effectivement on peut faire plus "court" :
$title_page = $menu[$_GET['pof']][title];
$adresse = $infos[$_GET['pof']][description];
$key = $infos[$_GET['pof']][keywords];
Bonjour.
@Frank Hélin : Tu n'utilises pas correctement le switch, c'est par exemple :
switch ($_GET['pof']):
case 'flambys': /* et non : */ case $_GET['pof'] = flambys :
/* code ... */
break;
case 'poivre':
/* code ... */
break;
/* etc ... */
endswitch;
Sinon, la proposition de Naïr est plutôt correcte, bien que comme toi, il oubli des apostrophes/quotes.
@Naïr: Tu aurais pu mettre le code dans la balise adéquate.
<?php
$getValPof = $_GET['pof'];
$title_page = $menu[$getValPof]['title'];
$adresse = $infos[$getValPof]['description'];
$keywords = $infos[$getValPof]['keywords'];
Par contre, je te conseille de faire un nettoyage et une vérification de la valeur du paramètre passée en get dans l'url, car il ne faut pas oublier, que les valeurs des paramètres passées dans l'url, sont facilement modifiables et peuvent causer des erreurs lorsque c'est le cas.
Pourquoi une switch dans ce cas ?
$getValidc = $_GET['pof'];
$title_page = $menu[$getValpof]['title'];
$adresse = $infos[$getValpof]['description'];
$keywords = $infos[$getValpof]['keywords'];
Ça te suffit pas ? Tes tableaux associatifs ($menu et $infos) te permettent d'éviter d'utiliser les structures de contrôle tel que la switch ! (dans ton cas) C'est absolument inutile d'avoir une switch avec une seule condition de sortie.
En effet je n'utilisais pas switch correctement, merci à vous. Toutefois, quelles peuvent être les conséquences d'un mauvais usage de switch.
Je demande cela par curiosité étant donné que ma façon de l'utiliser fonctionnait.
Sinon, n'y a t-il pas une façon beacoup plus courte d'obtenir le même résultat ? Je rêve d'une seule ligne. Est-ce utopique ?
quelles peuvent être les conséquences d'un mauvais usage de switch.
C'est en premier lieu que tu fais de la répétition de code, par exemple en répétant la variable $_GET['pof']
.
Ensuite, quel est l'intérêt d'utiliser une fonctionnalité de PHP, si c'est pour alourdir ton code au niveau du nombre de caractères ?
Le principal intérêt de switch
est qu'en lui attribuant une variable, de pouvoir tester l'égalité des valeurs définies par la suite et de faire des actions différentes selon celles-ci, et ce, en un minimum de code.
Sinon, autant utiliser des if -> else
ou des if -> elseif
si c'est pour faire comme tu l'utilises.
Grâce à vous j'ai trouvé la formule idéale :
(j'économise plus de 20 lignes !)
switch ($_GET['pof']):
case $_GET['pof']:
$getValidc = $_GET['pof'];
$title_page = $menu[$getValpof]['title'];
$adresse = $infos[$getValpof]['description'];
$keywords = $infos[$getValpof]['keywords'];
break;
endswitch;