我注意到我的脚本中有一些奇怪的行为,不知道为什么它会发生.
if ($date != 'NOW()' || $date != 'NULL')
{
// throw error
} else {
// run functions
}
Run Code Online (Sandbox Code Playgroud)
我在我的一个函数中有一个类似于上面的IF语句,我传递了'NULL'我的函数中的值,它正在接收.但是在与IF语句进行比较时,它不起作用.它总是跳过其他声明.
更新:
下面是我的功能的完整代码,我希望它有所帮助.
public function setLastLoginDate( $date )
{
if (isset($date) && !empty($date))
{
if ($date != 'NOW()' || $date != 'NULL' || is_datetime(convertDateTimeToSql($date)) == false)
{
$this->errors['user_last_login'] = 'invalid date specified.';
} else {
this->properties['user_last_login'] = $date;
}
}
}
Run Code Online (Sandbox Code Playgroud)
最后更新
使用&&确实可以工作而不是||,但我从不打算使用&&.如果这就是它的假设那么我想我必须重新阅读.
是不是&&检查两个变量是否返回true?喜欢if (is_string($foo) && strlen($foo) > 1)?但我想检查变量是否包含任何值
但这也对我有用:
if ( $date == 'NOW()' || $date == 'NULL' || is_datetime(convertDateTimeToSql($date)) == true )
{
$this->properties['user_last_login'] = $date;
} else {
$this->errors['user_last_login'] = 'invalid date specified.';
}
Run Code Online (Sandbox Code Playgroud)
做了一些测试和它的工作,因为我希望它与上述. 如上所述使用它有什么问题吗?
谢谢