2013-12-11 70 views
-1

忽略空值,我有这个字符串串联形式:快速功能或快捷方式在连接字符串

$string = $firstName." | ".$middleName." | ".$lastName; 

现在考虑$中间名是空的。

它会出现这样的:

John | | Doe 

我想忽略那些空的变量。

我希望它是这样的:

John Doe 

我需要一个快速的方法。我还可以通过来解决这个问题,如果其他条件为但这不是最佳解决方案。

我需要一个快速的方法来处理这些类型的情况。

任何解决方案,请?

+0

使用'if else'有什么问题? –

+0

那么如果只存在'firstName'或'lastName',那么怎么办呢? –

+0

我的项目中有太多这样的案例,所以想要一个快速的方法 –

回答

1

试试这个:

$string = implode(' | ', array_filter(array($firstName, $middleName, $lastName), 'strlen')); 

现在,你甚至可以创建一个大阵的参数。所有空白参数在串联之前都会被剥离。我现在使用了管道,但是当然可以是任何东西。

+0

如果firstName或lastName为空,该怎么办? –

+0

没错,改变了一下 –

0

为什么不喜欢这样的:

$name = implode(" ", array($firstName, $middleName, $lastName)); 
0

字符串替换方法可以是特异于中间名以下顺序

defaultName中= “defaultName123”;

middlename =(userInput ==“”)? defaultName:userInput;

现在字符串将包含

| defaultname123 |

只有在中间,你可以取代它。

PS抱歉,还有一条if语句隐藏在? :

第三方声明