2017-05-07 53 views
1

我不知道怎麼的記號來描述它,只是看代碼:PHP - 定義與條件變量,在做的

$html = 
'<table> 
    <tr> 
     <td>' 

      if(strlen($parse['abweichend_name']) > 2) 
      { 
       'Lieferanschrift<br>' . $parse['abweichend_firma'] . '<br>' . $parse['abweichend_name'] . '<br>' . $parse['abweichend_strasse'] . '<br>' . $parse['abweichend_plz'] . ' ' . $parse['abweichend_ort']; 
      } 
      else 
      { 
       'Lieferanschrift<br>' . $parse['firma'] . '<br>' . $parse['name'] . '<br>' . $parse['strasse'] . '<br>' . $parse['plz'] . ' ' . $parse['ort']; 
      } 

     '</td> 

     <td align="right" valign="top"> 
      <font size="5" color="#808080">bla</font> 
     </td> 
    </tr> 

</table>'; 

它甚至有可能以某種方式做到這一點?的xD我知道怎麼做是正確的/正常,但只是不知道是否有什麼辦法可以做這種方式

+0

所以,要動態結構中的字符串的一部分。你可以在'if'語句中連接字符串,或者在字符串中使用三元運算符。 – Qirel

回答

0

如果條件可以使用正常的,追加到字符串變量。

$html = '<table><tr><td>'; 

if(strlen($parse['abweichend_name']) > 2) { 
    $html = $html . 'Lieferanschrift<br>' . $parse['abweichend_firma'] . '<br>' . $parse['abweichend_name'] . '<br>' . $parse['abweichend_strasse'] . '<br>' . $parse['abweichend_plz'] . ' ' . $parse['abweichend_ort']; 
} else { 
    $html = $html . 'Lieferanschrift<br>' . $parse['firma'] . '<br>' . $parse['name'] . '<br>' . $parse['strasse'] . '<br>' . $parse['plz'] . ' ' . $parse['ort']; 
} 

$html = $html . '</td><td align="right" valign="top"><font size="5" color="#808080">bla</font></td></tr></table>'; 

或者你可以使用三元運算符,但在我看來這種解決方案的可讀性更差。

$html = '<table><tr><td>' .  
(strlen($parse['abweichend_name']) > 2) ? 
('Lieferanschrift<br>' . $parse['abweichend_firma'] . '<br>' . $parse['abweichend_name'] . '<br>' . $parse['abweichend_strasse'] . '<br>' . $parse['abweichend_plz'] . ' ' . $parse['abweichend_ort']) : 
('Lieferanschrift<br>' . $parse['firma'] . '<br>' . $parse['name'] . '<br>' . $parse['strasse'] . '<br>' . $parse['plz'] . ' ' . $parse['ort']) . 
'</td><td align="right" valign="top"><font size="5" color="#808080">bla</font></td></tr></table>' 
+2

而不是'$ html = $ html。 'Lieferanschrift ...',你可以做'$ html。='Lieferanschrift ...'。 http://php.net/manual/en/language.operators.string.php – Qirel

+0

嗯,這是「正常」的方式,但在沒有任何其他的解決方案,我會接受 –

+0

您可以使用三元運算符實現這一點。 – Benedikt

1

在你的情況,因爲所有的領域都有前綴abweichend_你可以這樣做:

$html = '<table><tr><td>'; 

$prefix = strlen($parse['abweichend_name']) > 2? 'abweichend_' : ''; 

$html .= 'Lieferanschrift<br>' . $parse[$prefix . 'firma'] . '<br>' . $parse[$prefix . 'name'] . '<br>' . $parse[$prefix . 'strasse'] . '<br>' . $parse[$prefix . 'plz'] . ' ' . $parse[$prefix . 'ort']; 

$html .= '</td><td align="right" valign="top"><font size="5" color="#808080">bla</font></td></tr></table>'; 

當然,我更換了$html = $html . "string"$html .= "string"