Hoe bouw ik een if-statement in binnen een variabele?

Ik heb nu het begin van een variabele:
[code]$mailBody="Hoofdpersoon:\nNaam: $voornaam_persoon1 if ( $roepnaam_persoon1 <> "" { ($roepnaam_persoon1) }) $tussenvoegsels_persoon1 $achternaam_persoon1 \n[code]
.... (de variabele is veel langer)

Daarmee wil ik graag bereiken:
Hendrik (Henk) de Graaf

Ik kan niet ontdekken welke fout hierin zit.

Vriendelijke groet,
Guido van Harten
Je kunt niet zomaar een if achter een = plakken.

Begin gewoon met de if
<?php
$mailBody = 'Hoofdpersoon:\nNaam: ' . $voornaam_persoon1;

if($roepnaam_persoon1 != "")
{
$mailBody .= ' en nu de rest..'; // let op de .= operator!
} else {
// ....
}
?>
Om het overzichtelijk te houden zou ik eerst de volledige naam opbouwen, en daarna pas de mailbody.

<?php

$naam = $voornaam_persoon1;

if ($roepnaam_persoon1 != '') {
$naam .= ' ' . $roepnaam_persoon1; // naam aanvullen met spatie gevolgd door roepnaam
}

// hier doe je hetzelfde voor het tussenvoegsel en de achternaam

$mailbody = 'Hoofdpersoon:\nNaam: ' . $naam;

?>
Zoals je ziet is dit overzichtelijker. Je bouwt dus eerst de volledige naam op, en daarna plak je die naam in je mailbody.
Wat wel mogelijk is om de waarde van de variabel te vullen op basis van een if statement met een single-line.


<?php
$foo = 1;
$var = ($foo) ? 'foo' : 'bar'; 
echo $var; // output foo

$naam = (!empty($roepnaam_persoon1)) ? $roepnaam_persoon1 : $voornaam_persoon1;
?>


Zie http://www.abeautifulsite.net/how-to-use-the-php-ternary-operator/ voor een verdere uitleg.

Reageren