NULL或EMPTY变量存在问题


Problems with NULL or EMPTY variable

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

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

  • 空的
  • ==错误
  • ===空

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

使用empty函数尝试此操作。如果$row['companyname']为空,则返回$row['firstname']$row['lastname']的串联字符串,否则返回$row['companyname']的修剪值。

$name = ( empty(trim($row['companyname'])) ? ($row['firstname'].' '.$row['lastname']) : trim($row['companyname']) );

这在PHP中应该是一件简单的事情。代替=== FALSE,为什么不使用稍微宽松的键入,只使用!而不是比较:

$name = ( ! trim($row['companyname']) )
    ? $row['firstname'] . " " . $row['lastname'] 
    : $row['companyname'];

此外,在PHP中,您可以将字符串与.连接,而不是与&连接。。。。

你用"empty()"尝试过吗,比如:

$name = (empty(trim($row['companyname'])) == TRUE ? $row['firstname'] . " " . $row['lastname'] : $row['companyname']) ;

您可以使用:

$name = ($row['companyname']=='' )
? $row['firstname'] . " " . $row['lastname'] 
: $row['companyname'];

由于PHP 5.3,在使用三元运算符时可以省略"middle"语句。由于一个空字符串等于布尔值false,所以这个简单的语句有效:

$name = $row["companyname"] ?: "$row[firstname] $row[lastname]"

还要注意,如果要连接字符串(这里没有必要),则使用.,而不是&