PHP编写if的可能方法

PHP编写if的可能方法,php,if-statement,Php,If Statement,我想知道是否有任何方法可以缩短代码。我使用了2个if语句,我希望只使用一个。事情是,$user是会话,如果检查同一行上是否存在$user->userId,则当不存在会话时,代码将出错。从不存在的对象请求用户ID导致。这很合乎逻辑,但现在有什么解决办法吗 if ($user != null) { if ($user->userId == 1) { .. } } 如何使用: 您想使用&&运算符。这意味着 if ($user && $user->userI

我想知道是否有任何方法可以缩短代码。我使用了2个
if
语句,我希望只使用一个。事情是,
$user
是会话,如果检查同一行上是否存在
$user->userId
,则当不存在会话时,代码将出错。从不存在的对象请求
用户ID
导致。这很合乎逻辑,但现在有什么解决办法吗

if ($user != null) {
  if ($user->userId == 1) {
    ..
  }
}
如何使用:


您想使用
&&
运算符。这意味着

if ($user && $user->userId == 1) {
    // do some things
}
您可能还想查看
|
操作符,它的意思是或

只有当两个谓词返回true时,
&&
运算符才会返回true


只要其中一个谓词返回true,
|
运算符将返回true。

在这种情况下,只要句子构造正确,您可以添加任意数量的句子:

if (($user != null) && ($user->userId == 1)) {
或者你可以简单地:

if ($user && ($user->userId == 1)) {

如果($user)只是检查变量是否已设置,或者它是否不为null。

Waw,那么我在以前尝试这样做时犯了错误。无论如何,非常感谢。@user2103237只是为了澄清,
if($user…
checks)等同于
if($user==true…
,所以,很可能这对您来说是好的,但是请注意,
0
false
'0'
,等等都不等于
true
,但是
1
true
'false'
'1'
,等等都等于
true
if ($user && ($user->userId == 1)) {