Gå til innhold

ternary vs vanlig if else


Anbefalte innlegg

Hey!

Bare et kort spørsmål om hva dere synes om ternary-operatorer.

 

Jeg brukte det aldri før, men har begynt å bruke det litt i det siste, da det både er kjappere å skrive, + at jeg enkelte ganger synes det ser bedre ut. Dog kun når sammenlikningen er kort.

 

F.Eks

<?php
if ($isWeekend == true) {
$mood = 'Good!';
} else {
$mood = 'Bad.';
}

// Synes jeg er bedre skrevet

$mood = ($isWeekend) ? 'Good!' : 'Bad.';
?>

eller

<?php
function bar($str) {
if (is_string($str) == false) {
	return false;
}
// Gjør ting
}

// Liker jeg bedre som

function bar($str)
if (!is_string($str)) return false;
// Gjør ting
}
?>

 

Så, hvordan stiller dere dere til dette? Gjerne kom med en begrunnelse på hvorfor dere (ikke) liker det.

Takk for svar:)

- PD

Lenke til kommentar
Videoannonse
Annonse

For eller mot ternary operator? Bruker det gjerne der det kan komme til nytte. Feks når verdien til et html-attributt kommer an på hva en variabel inneholder, er det ganske handy å putte en ternary inn der. Bakdelen er at det er mindre lesbart, og det kan fort bli krøll med mange nestede ternarier.

 

Fra PHP 5.3: Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.

Endret av MikkelRev
Lenke til kommentar

Når jeg skriver inline-PHP inni f.eks en det som skal bli HTML/XML-output ("templates" kaller vel de fleste det) bruker jeg det omtrent hele tiden.

<span<?= $active ? ' class="active"' : null ?>>Fisk</span>

 

Men i rene PHP-klasser bruker jeg det bare i opprettelse av SQL-statements og aldri i vanlig logikk.

$sql = "SELECT /*SQL_CACHE*/ id FROM user WHERE age > 20" . (isset($height) ? " AND height > {$height}" : null) . " ORDER BY name DESC;";

 

Jeg har lite imot det, men nøstede slike kan lett bli hårete etter hvert.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...