Mailinglisten-Archive |
Hallo Carsten,
Carsten Lehmann wrote:
> function getDateFromKw ($kw,$jahr) {
> $tstp=mktime(0,0,0,1,$kw*7,$jahr);
> $kw2=date(W,$tstp);
date('W', $tstp); mit Strichen um das W - PHP toleriert es zwar aber
sauberer ist es mit den ' bzw. " Wenn man error_reporting auf E_NOTICE
schaltet sieht man auhc eine Warnung, denn was passiert? PHP sucht eine
Konstante mit dem Namen W findet die nicht und anstatt abzubrechen nimmt
er den namen der vermuteten Kosntante als String, also W wenn jetzt -
warum auch immer - irgendjemand ein define('W', 'foobar'); macht ist die
Funktion hin. Zudem ist es langsamer, da erst die Hashtabelle mit den
Konstanten durchsucht werden muss (was aber in aller Regel
vernachlässigbar ist)
> if ($kw2!=$kw) $tstp=mktime(0,0,0,1,--$kw*7,$jahr);
Schöner wäre imho
if ($kw2 != $kw) {
$tstp=mktime(0, 0, 0, 1, --$kw*7, $jahr);
}
Also ruhig ein paar {}, Leerzeichen und Zeilenumbrüche dazu - die kosten
nichts brignen aber Lesbarkeit, 2! ist nicht so untershciedlich zu z.B. 21.
(-- und ++ lassen sich zwar mit anderen Operationen verbinden lassen es
imho aber auch nicht so lesbar ist, mehr zu -- weiter unten)
> $wt=date(w,$tstp);
Siehe oben, diesmal mit kleinem w.
> if (--$wt==-1) $wt=6;
Der Vergleich ist - wenn man später beim debuggen oder sonstigen
wartungsarbeiten drüber schaut schwer zu interpretieren, besser wäre es
a) in der Zeile vorher $wt = date(...) - 1 zu defnieren
oder b) $wt == 0 zu vergleichen und dann später eins abzuziehen (dann
muss $wt als 7 definiert werden oder ein else-Block her).
Wie oben wäre es auch hier schön dem if etwas mehr Paltz zu gönnen.
> return date("Y-m-d",$tstp-$wt*86400);
Da wäre - im Sinne der Wartbarkeit - schön entweder einen Komemntar zu
schreiben was 86400 bedeutet oder 60*60*24 zu schreiben - auch wenn es
langsamer ist (wirklich vernachlässigbar)
> }
>
> Gruss Carsten
johannes
php::bar PHP Wiki - Listenarchive