我有很多if這樣的 inline ,但只有這個不起作用:
$border = $settings[$key]['border'] ? 'border-width:'.$settings[$key]['border'].'px;' : null;
$settings[$key]['border']是"0"并gettype($settings[$key]['border'])回傳string。
我嘗試通過添加before"0"再次轉換為字串。(string)$settings[$key]['border']
public static function GenerateStylesFromSettings($key, $settings){
$bg = $settings[$key]["background"] ? 'background-color:'.$settings[$key]["background"].';' : null;
$pl = $settings[$key]["position"]['left'] ? 'left:'.$settings[$key]["position"]['left'].'%;' : null;
$pt = $settings[$key]["position"]['top'] ? 'top:'.$settings[$key]["position"]['top'].'%;' : null;
$c = $settings[$key]['font']["color"] ? 'color:'.$settings[$key]['font']["color"].';' : null;
$f = $settings[$key]['font']["family"] ? 'font-family:"'.$settings[$key]['font']["family"].'";' : null;
$s = $settings[$key]['font']["size"] ? 'font-size:'.$settings[$key]['font']["size"].'mm;' : null;
$width = $settings[$key]['width'] ? 'width:'.$settings[$key]['width'].'mm;' : null;
$height = $settings[$key]['height'] ? 'height:'.$settings[$key]['height'].'mm;' : null;
$linehe = $settings[$key]['height'] ? 'line-height:'.($settings[$key]['height']-1.5).'mm;' : null;
$border = (string) $settings[$key]['border'] ? 'border-width:'.$settings[$key]['border'].'px;' : null;
$borderc = $settings[$key]['border_color'] ? 'border-color:'.$settings[$key]['border_color'].';' : null;
$borders = $settings[$key]['border_style'] ? 'border-style:'.$settings[$key]['border_style'].';' : null;
$visibility = $settings[$key]['visibility'] ? 'visibility:'.$settings[$key]['visibility'].';' : null;
$css = ($bg) ? $bg : null;
$css .= ($pl) ? $pl : null;
$css .= ($pt) ? $pt : null;
$css .= ($c) ? $c : null;
$css .= ($f) ? $f : null;
$css .= ($s) ? $s : null;
$css .= ($width) ? $width : null;
$css .= ($height) ? $height : null;
$css .= ($linehe) ? $linehe : null;
$css .= ($border) ? $border : null;
$css .= ($borderc) ? $borderc : null;
$css .= ($borders) ? $borders : null;
$css .= ($visibility) ? $visibility : null;
$styles = ($css) ? 'style=\''.$css.'\'' : null;
return $styles;
}
不作業。編輯:我需要將其行內if以true生成border-width: 0px.
uj5u.com熱心網友回復:
由于字串在 php'0'中被認為是錯誤的,因此您應該使用另一種比較,例如:
null !== $settings[$key]['border'] ? 'value' : null;
// if value is always a string - compare with empty string
'' !== $settings[$key]['border'] ? 'value' : null;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478253.html
