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).  

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.

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