Forum Programmation.php travailler avec error_reporting(E_STRICT) ?

Posté par  .
Étiquettes : aucune
0
31
mai
2005
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 :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.