【发布时间】:2020-07-13 13:24:14
【问题描述】:
我有一个包含三列的数据库表:街道名称、门牌号(可为空)和城市。
我想使用 is 格式打印地址:
正确:“华尔街,11 - 纽约”
正确(门牌号为空):“华尔街 - 纽约”
错误(门牌号为空):“华尔街,-纽约”
我不想使用 if/else 语句,因为我有一些基于国家/地区的不同格式,所以我考虑了 XML。
【问题讨论】:
我有一个包含三列的数据库表:街道名称、门牌号(可为空)和城市。
我想使用 is 格式打印地址:
正确:“华尔街,11 - 纽约”
正确(门牌号为空):“华尔街 - 纽约”
错误(门牌号为空):“华尔街,-纽约”
我不想使用 if/else 语句,因为我有一些基于国家/地区的不同格式,所以我考虑了 XML。
【问题讨论】:
因为您有不同的国家/地区的格式,您应该使用sprintf 函数,并将您想要的格式作为第一个参数,然后是其余参数。
示例:
$format = '%1$s %2$s - %3$s';
echo sprintf($format, $house, ($number ? ', '.$number. : ''), $city);
【讨论】:
您可以尝试通过以下方式使其通用:
echo $street . ' ' . $number ? ',' . $number : '' . $city ? ' - ' . $city : '';
【讨论】: