我正在尝试编写一个非常简单的php单行if语句,但是我遇到了null结果的问题。如果companyname为NULL,则使用firstname + lastname组合。
SELECT `firstname`, `lastname`, `companyname` FROM (`client`) WHERE `client_id` = '116'
Array
(
[firstname] => John
[lastname] => Citizen
[companyname] =>
)
$name = trim($row['companyname']) == FALSE ? $row['firstname'] & " " & $row['lastname'] : $row['companyname'] ;
我尝试了以下所有选项无济于事;
但是他们都不会给我返回我期待的名字+姓氏组合。
答案 0 :(得分:0)
使用empty
功能尝试此操作。如果$row['companyname']
为空,则返回$row['firstname']
和$row['lastname']
其他名称的连接字符串,返回$row['companyname']
的修剪值。
$name = ( empty(trim($row['companyname'])) ? ($row['firstname'].' '.$row['lastname']) : trim($row['companyname']) );
答案 1 :(得分:0)
这应该是PHP中的一个简单问题。而不是=== FALSE
,为什么不使用稍微宽松的打字,只使用!
而不是比较:
$name = ( ! trim($row['companyname']) )
? $row['firstname'] . " " . $row['lastname']
: $row['companyname'];
另外 - PHP you concatenate strings .
,而不是&
....
答案 2 :(得分:0)
你是否尝试过'empty()',如:
$name = (empty(trim($row['companyname'])) == TRUE ? $row['firstname'] . " " . $row['lastname'] : $row['companyname']) ;
答案 3 :(得分:0)
您可以使用:
$name = ($row['companyname']=='' )
? $row['firstname'] . " " . $row['lastname']
: $row['companyname'];
答案 4 :(得分:0)
自PHP 5.3起,you can leave out the "middle" statement使用三元运算符时。从an empty string equals boolean false开始,这个简单的陈述起作用:
$name = $row["companyname"] ?: "$row[firstname] $row[lastname]"
另请注意,如果您要连接字符串(此处不需要),请使用.
而非&
。