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