Php 空变量或空变量的问题

Php 空变量或空变量的问题,php,mysql,Php,Mysql,我试图编写一个非常简单的php单行if语句,但遇到空结果的问题。如果companyname为NULL,则使用firstname+lastname组合 SELECT `firstname`, `lastname`, `companyname` FROM (`client`) WHERE `client_id` = '116' Array ( [firstname] => John [lastname] => Citizen [companyname] =>

我试图编写一个非常简单的php单行if语句,但遇到空结果的问题。如果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'] ;
我尝试了以下所有选择,但都没有成功

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

但是它们都不会返回我期望的firstname+lastname组合。

使用
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'];

另外-在使用
时,而不是使用
&

时,您是否尝试过使用“empty()”,例如:

您可以使用:

$name = ($row['companyname']=='' )
? $row['firstname'] . " " . $row['lastname'] 
: $row['companyname'];
从PHP5.3开始,当使用三元运算符时。因为,这个简单的语句是有效的:

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

还请注意,如果要连接字符串(此处不需要),可以使用
而不是
&

来返回特定字符串,以便在companyname为空时进行检查。ie
COALESCE(companyname),”
然后你可以在PHP中执行
$row['companyname']==”
。不知道你从哪里得到了这个:
$row['firstname']&“&$row['lastname']
,但那应该是
$row['firstname']。" " . $行['lastname']
-这将导致各种问题!您是否尝试过
==”
?为什么不使用if和else语句分步骤执行此操作,而不是将它们混在一个语句中?这是非常混乱的,作为一个初学者,我建议你不要使用它,如果你不是很好地理解它。如果这些答案中的任何一个有帮助,这是一个很好的形式,投票给那些有帮助的人,并接受最有帮助/正确的答案。你必须使用点,而不是符号。
$name = $row["companyname"] ?: "$row[firstname] $row[lastname]"