0

このifステートメントを3項ステートメントに変換するにはどうすればよいですか?

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>';    
    }

私はトライをしています

$vendor_address_row['address2'] ? $address_obj['address2'] = '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>' : $address_obj['address2'] = '';

!empty($vendor_address_row['address2']) ? $address_obj['address2'] = '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>' : $address_obj['address2'] = '';

どちらも機能しません。そして、おそらくそれ以外にもっと短い方法があります。どうもありがとうございます。

4

3 に答える 3

1

$vendor_address_row['address2']常に定義されているかどうかによって異なります。

もしそうなら(そしてバージョン> = 5.3):

$address_obj['address2'] = $vendor_address_row['address2'] ?: '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>';

または(バージョン<5.3):

$address_obj['address2'] = $vendor_address_row['address2'] ? $vendor_address_row['address2'] : '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>';

そうではありません:

$address_obj['address2'] = !empty($vendor_address_row['address2']) ? $vendor_address_row['address2'] : '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>';

必要に応じて、オペランドを逆にしてifを取り除くことができ!empty()ます。

于 2012-11-26T02:02:04.367 に答える
0

これは次のようになります。

echo $address_obj['address2'] = !empty($vendor_address_row['address2']) ? $vendor_address_row['address2'] : ('<tr><td colspan="1">'.$address_row['address2'].'</td></tr>');

またはそれを変数に保存するには:

$address_obj['address2'] = !empty($vendor_address_row['address2']) ? $vendor_address_row['address2'] : ('<tr><td colspan="1">'.$address_row['address2'].'</td></tr>');
于 2012-11-26T01:58:45.990 に答える
0

そのはず

$address_obj['address2'] = empty($vendor_address_row['address2']) ? '<tr><td colspan="1">'.$address_row['address2'].'</td></tr>' : $vendor_address_row['address2'] ;
于 2012-11-26T02:00:27.380 に答える