NULL或EMPTY变量的问题

时间:2015-11-26 22:51:46

标签: php mysql

我正在尝试编写一个非常简单的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'] ;

我尝试了以下所有选项无济于事;

  • == FALSE
  • === NULL

但是他们都不会给我返回我期待的名字+姓氏组合。

5 个答案:

答案 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]"

另请注意,如果您要连接字符串(此处不需要),请使用.而非&