Gå til innhold

[løst] if statement inni objekt kall?


Anbefalte innlegg

Skrevet (endret)

Jeg har laget meg en statisk klasse med en funksjon inni, det jeg ønsker er og kalle på den. Men vil ha med en parameter dersom den er satt. Trenger litt hjelp med og skrive om dette sånn at det faktisk fungerer :)

 

echo 'navn: '.Lag::Textbox('navn', 'id', { if(isset($navn)) echo $navn; } ).'<br />';

 

Det er da den saken mellom { og } jeg er veldig usikker på hvordan lages. Håper ting er godt nok forklart? :)

Endret av pulse
Videoannonse
Annonse
Skrevet

Det der vil antageligvis ikke fungere. Jeg har hvertfall ikke vært borti noe slikt.

 

$navn = isset( $navn ) && !empty( $navn ) ? $navn : '';
echo 'navn: ' . Lag::Textbox('navn', 'id', $navn ) . '<br />';

Dette er nok det du ønsker :)

Skrevet
$navn = isset( $navn ) && !empty( $navn ) ? $navn : '';
echo 'navn: ' . Lag::Textbox('navn', 'id', $navn ) . '<br />';

Dette er nok det du ønsker :)

Den funka flott, takker! =D

 

Men hva betyr det som står der? jeg skjønner tegninga, men ikke helt hvorfor den er bygget opp slik den er. Kan jeg lese mer om dette på php.net, isåfall hvor?

 

Det er kolonet til slutt som egentlig forvirrer meg mest her.

Skrevet

er det (?:) du lurer på? veldig enkelt.

 

if ( expression ) expression_true;

else expression_false;

 

er det samme som:

 

(expression ? expression_true : expression_false)

 

bør ikke brukes for mye. dårlig lesbarhet.

 

det kan hende første koden din hadde fungert dersom du fjernet "echo"

Skrevet

Jeg syns ternary er supert å bruke om det slike enkle til som isset() og empty() som skal sjekkes. Spesielt om det er flere variabler som skal opprettes, så slipper man en egen if() for hver av dem.

 

Det værste er egentlig når man har flere av dem inni hverandre.

$foo = isset( $bar ) ? (( isset( $baz) ? (empty( $barbaz) ? "jadda" : "hei" ) : "nei" ) : "på deg";

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...