Reputation: 15369
How could I turn this if-statement into a ternary statement?
if ( !empty($vendor_address_row['address2'])){
$address_obj['address2'] = $vendor_address_row['address2'];
}else{
$address_obj['address2'] = '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>';
}
I have trie
$vendor_address_row['address2'] ? $address_obj['address2'] = '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>' : $address_obj['address2'] = '';
and
!empty($vendor_address_row['address2']) ? $address_obj['address2'] = '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>' : $address_obj['address2'] = '';
Neither work. And there is probably a shorter way to do it besides. Thank you very much.
Upvotes: 0
Views: 41
Reputation: 173652
It depends on whether $vendor_address_row['address2']
is always defined or not.
If it is (and version >= 5.3):
$address_obj['address2'] = $vendor_address_row['address2'] ?: '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>';
Or (version < 5.3):
$address_obj['address2'] = $vendor_address_row['address2'] ? $vendor_address_row['address2'] : '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>';
It it isn't:
$address_obj['address2'] = !empty($vendor_address_row['address2']) ? $vendor_address_row['address2'] : '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>';
You can reverse the operands to get rid of the !empty()
if you want.
Upvotes: 1
Reputation: 95161
It should be
$address_obj['address2'] = empty($vendor_address_row['address2']) ? '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>' : $vendor_address_row['address2'] ;
Upvotes: 0
Reputation: 16828
this should be:
echo $address_obj['address2'] = !empty($vendor_address_row['address2']) ? $vendor_address_row['address2'] : ('<tr><td colspan="1">'.$address_row['address2'].'</td></tr>');
or to save it to a variable:
$address_obj['address2'] = !empty($vendor_address_row['address2']) ? $vendor_address_row['address2'] : ('<tr><td colspan="1">'.$address_row['address2'].'</td></tr>');
Upvotes: 0