Retourner aux forums || Retourner au forum Programmation.php
Programmation.php : travailler avec error_reporting(E_STRICT) ?
Posté par samyboy (Jabber id, page perso, ) le 31 mai 2005
0
Bonjour,
Je me suis dit qu'il serait bien que j'arrête de coder comme un cochon et que je me mette *vraiment* à écrire correctement.
J'ai donc modifié la directive error_reporting à E_STRICT (ou E_ALL sur php4) et j'ai décidé de ne plus écrire d'absurdités.
Voici deux exemples d'une même instruction. Les deux ne donnent pas d'erreur mais elles ne me satisfont pas :
Exemple 1:
----------
Le problème qui me turlupe c'est que la variable $date est affectée à la première ligne avant le test et il se pourrait
que la valeur soit réassignée. L'affectation de la première ligne aurait donc servi à rien.>
<?php
$date=date("n",time());
if (isset($_GET["date"]) ){
if( ($_GET["date"] >= 1) && ($_GET["date"] <= 12) ){
$date = $_GET["date"];
}
}
?>
Exemple 2 :
----------
Je n'aime pas cette tournure car l'instruction dans le else est écrite deux fois... et comme je suis paresseux, je trouve ça pourri.
En plus il y a trop de lignes.
<?php
if (isset($_GET["date"]) ){
if( ($_GET["date"] >= 1) && ($_GET["date"] <= 12) ){
$date = $_GET["date"];
}else{
$date=date("n",time());
}
}else{
$date=date("n",time());
}
?>
Vous m'accuserez peut-être d'être pinailleur-car-de-toute-façon-ça-revient-au-même-et-je-suis-trop-paresseux-et-rtfm.
Mais la fonction date() ici présente pourrait très bien être remplacée par refait_le_monde() ou une autre fonction qui prend du temps. L'exemple 1 ne serait alors plus utilisable.
Et si le fait de refaire le monde demande beaucoup de lignes de codes, l'exemple 2 serait difficile à maintenir car l'affectation est écrite deux fois.
Je vous demande vos conseils de programmation pour que je puisse prendre l'habitude d'écrire correctement sans pour autant me prendre la tête sur des trucs futiles comme ce celui que je viens de vous expliquer.
merci :)> Lire le message (3 commentaires, moyenne: 1,7).
Opérateur ternaire
Posté par
heltem (page perso, ) le 31/05/2005 à 14:00. (lien). Évalué à 2.
Quelque chose comme ça :
<?php
$date = (isset($_GET['date']) && $_GET['date'] >= 1 && $_GET['date'] <= 12) ? $_GET['date'] : date('n');
?>
-
[^]Re: Opérateur ternaire
Posté par samyboy (Jabber id, page perso, ) le 01/06/2005 à 08:14. (lien). Évalué à 1.Est-ce que c'est parce que le (isset($_GET['date']) est en premier qu'il n'y a pas d'erreur si $_GET['date'] n'est pas affecté ?
-
[^]Re: Opérateur ternaire
Posté par heltem (page perso, ) le 02/06/2005 à 17:15. (lien). Évalué à 2.Exact, c'est tout l'interêt de cette écriture ;)
-
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.php



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.