我不确定这是否有用,或者如何使它工作.
任何帮助都会非常感谢.
我需要将这个contitional语句字符串变成一个变量?
我怎样才能做到这一点?
if ($address1) {
echo $address1 . ', ';
}
if ($address2) {
echo $address2 . ', ';
}
if ($address3) {
echo $address3 . ', ';
}
if ($address4) {
echo $address4 . ', ';
}
if ($townCity) {
echo $townCity . ', ';
}
if ($county) {
echo $county . ', ';
}
if ($postCode) {
echo $postCode;
}
Run Code Online (Sandbox Code Playgroud)
所以基本上我需要在一个变量中使用它,并且我在if语句中使用它的原因是因为这些变量中的一些变量可能不存在.
在每个变量之后,它有一个逗号和空格.
如果我这样做......
$singleVar = $address1 . ', ' .
$address2 . ', ' .
$address3 . ', ' .
$address4 . ', ' .
$townCity . ', ' .
$county . ', ' .
$postCode;
Run Code Online (Sandbox Code Playgroud)
然后对于不存在的变量,将有额外的逗号和空格 - 而不是很酷.
可以任何人请指教.
谢谢
有很多方法可以做到,但这就是我使用的方法:
$items = array(
$address1,
$address2,
$address3,
$address4,
$townCity,
$county,
$postCode
);
echo implode(', ', array_filter($items));
Run Code Online (Sandbox Code Playgroud)
array_filter删除"空"的,请参阅PHP文档中的转换为布尔值.
implode通过作为第一个参数传递的字符串将数组项连接在一起,并确保,输出结尾没有额外的悬空.
如果您担心变量可能未定义,请使用以下内容:
$items = array();
$fields = array(
'address1',
'address2',
'address3',
'address4',
'townCity',
'county',
'postCode'
);
foreach ($fields as $field)
{
isset($$field) && $items[] = $$field;
}
echo implode(', ', $items);
Run Code Online (Sandbox Code Playgroud)
只记得isset检查是否有"设置"的东西,而不是"空".例如,具有空字符串或零的变量是"set",但if ($var)条件失败.