可能是一个奇怪的人,我希望可以在一行中完成。
我必须有一个IF语句来检查两件事。
原因是当第一个变量等于staff时,'address1'变量不存在。
我确实有以下内容,但当我以工作人员身份登录时,它仍会检查地址1
if((isset($loggedInfo['status'])=="client")&&(!$loggedInfo['address1'])){
//Do something
}
答案 0 :(得分:3)
isset返回true或false。你必须单独检查实际值
if(
isset($loggedInfo['status']) && $loggedInfo['status']=="client" &&
isset($loggedInfo['address1']) && trim($loggedInfo['address1']) != ''
)
{
//Do something
}
答案 1 :(得分:1)
嗯,你无法将isset()
的返回值与字符串"client"
进行比较,因为它永远不会相等。要引用http://php.net/manual/en/function.isset.php,如果var存在且其值不是TRUE
,则NULL
的返回值为“FALSE
,否则为if ((isset($loggedInfo['status']) === true) && ($loggedInfo['status'] === "client") && (empty($loggedInfo['address1']) === true)) {
// Do something
}
。”
首先检查是否已设置
empty()
取消这一点应该是在手册http://www.php.net/manual/en/function.empty.php中查找您使用的每个功能的返回值,例如{{1}}。这将在未来为您节省许多麻烦。
答案 2 :(得分:1)
if((isset($loggedInfo['status']) && $loggedInfo['status']=="client") &&(empty($loggedInfo['address1'])){
//Do something
}
如果给定变量在当前作用域中使用非空值定义,则 isset()
返回TRUE。
empty()
返回TRUE。这些值是:
NULL // NULL value
0 // Integer/float zero
'' // Empty string
'0' // String '0'
FALSE // Boolean FALSE
array() // empty array
根据PHP版本,没有属性的对象也可能被视为空。