php if语句内/单变量?

Jos*_*shc 1 php variables

我不确定这是否有用,或者如何使它工作.

任何帮助都会非常感谢.

我需要将这个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)

然后对于不存在的变量,将有额外的逗号和空格 - 而不是很酷.


可以任何人请指教.

谢谢

Wes*_*rch 7

有很多方法可以做到,但这就是我使用的方法:

$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)条件失败.