Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

shorthand?

3 views
Skip to first unread message

Dennis Munding

unread,
Feb 28, 2018, 12:49:15 PM2/28/18
to
Hej igen derude!

Jeg forsøger at optimere min kode på en side, hvor jeg bl.a. har denne
stump kode:

<CODE>
$class = ($c % 2) ? "lige" : "ulige";
if($status === "Inaktiv") {
$class = "farvel";
}

if ($status === "Reservist") {
$class = "reservist";
}

if ($status === "Pause") {
$class = "pause";
}
</CODE>

$class definerer baggrundsfarven på en tr ud fra de aflæste parametre.

Mit spørgsmål er så:

Kan ovenstående kode optimeres yderligere?
Synes det virker tåbeligt med 3x if statements lige efter hinanden...


På forhånd tak for svar.


--
Med venlig hilsen

Dennis Munding

Jan Hansen

unread,
Feb 28, 2018, 2:20:11 PM2/28/18
to
Dennis Munding skrev:
Hvad med

$class = ($c % 2) ? "lige" : "ulige";
$tjekstatus= array('inaktiv' => 'farvel', 'Reservist' => 'reservist', 'Pause' => 'pause');
if (array_key_exists($status,$tjekstatus)) $class = $tjekstatus[$status];


--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

Kim Ludvigsen

unread,
Feb 28, 2018, 2:32:59 PM2/28/18
to
Den 01-03-2018 kl. 00:47 skrev Dennis Munding:

> Kan ovenstående kode optimeres yderligere?
> Synes det virker tåbeligt med 3x if statements lige efter hinanden...

Måske noget array-noget?

Ellers switch/case:

switch ($status) {

case: 'Inaktiv':
$class = "farvel";
break;

case 'Reservist':
$class = "reservist";
break

case 'Pause':
$class = "pause";
break;

// Hvis der kun er de tre muligheder, så kan den sidste udskiftes med:

default:
$class = "pause";
}

--
Mvh. Kim Ludvigsen

Dennis Munding

unread,
Feb 28, 2018, 3:26:45 PM2/28/18
to
Du er en knag, Jan!

Din løsning er så ligetil, at jeg ikke kunne se "skoven for bare
træer"...!

Mange tak! :-)

Dennis Munding

unread,
Feb 28, 2018, 3:29:45 PM2/28/18
to
Hej Kim,

Det blev noget "array-noget" :-D
Jan Hansen ramte spot-on - jeg havde bare stirret mig blind.

Havde et kort øjeblik selv tænkt på et switch-statement, men forkastede
det igen, da det hurtigt bliver uoverskueligt, hvis der tilføjes flere
muligheder.

Men mange tak for indsparket. :-)

Bertel Lund Hansen

unread,
Mar 1, 2018, 1:49:42 AM3/1/18
to
Dennis Munding skrev:

> Det blev noget "array-noget" :-D
> Jan Hansen ramte spot-on - jeg havde bare stirret mig blind.

Jeg havde nok også valgt array-løsningen.

> Havde et kort øjeblik selv tænkt på et switch-statement, men forkastede
> det igen, da det hurtigt bliver uoverskueligt, hvis der tilføjes flere
> muligheder.

Jeg er helt uenig. I en switch-konstruktion står mulighederne
lige til at læse. Array-løsningen er lidt mere kryptisk. Sådan
her ville en switch se ud som jeg stiller det op:

switch ($status) {
case: 'Inaktiv': $class = "farvel"; break;
case 'Reservist': $class = "reservist"; break
case 'Pause': $class = "pause"; break;
}

Smukt og overskueligt.

--
/Bertel

Kim Ludvigsen

unread,
Mar 1, 2018, 3:05:41 AM3/1/18
to
Den 01-03-2018 kl. 13:49 skrev Bertel Lund Hansen:

> switch ($status) {
> case: 'Inaktiv': $class = "farvel"; break;
> case 'Reservist': $class = "reservist"; break
> case 'Pause': $class = "pause"; break;
> }
>
> Smukt og overskueligt.

Enig, men den største fordel ved switch er, hvis der skal flere ting på
ved hver case:

case: 'Inaktiv':
$class = "farvel";
$ditten = "På gensyn. ";
$datten = "Vi sætter en cookie til næste gang.";
$cookie ="Sat";
break;

--
Mvh. Kim Ludvigsen

Bertel Lund Hansen

unread,
Mar 1, 2018, 4:02:10 AM3/1/18
to
Kim Ludvigsen skrev:

> Enig, men den største fordel ved switch er, hvis der skal flere ting på
> ved hver case:

Jeps.

--
/Bertel

Dennis Munding

unread,
Mar 1, 2018, 3:41:39 PM3/1/18
to
Det var/er jeg klar over - af samme grund valgte jeg Jans forslag, da
der kun er én parameter, som bliver ændret. :-)
0 new messages