私のスクリプトでは奇妙な振る舞いに気づいています。PHPのIF文を使った奇妙な振る舞い
if ($date != 'NOW()' || $date != 'NULL')
{
// throw error
} else {
// run functions
}
私は私の機能の一つで、上記と同様のIF文を持って、私はそれがうまく受信している私の関数から値'NULL'
を渡します。しかし、IF文との比較を行うときには機能しません。常にelse文にスキップします。
UPDATE:以下
私はそれが役に立てば幸い、私の関数の完全なコードです。 & &を使用して
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;
}
}
}
LAST UPDATE
代わりに||の作業を行いますが、私は& &を使用することを意図することはありません。 それは私がそれについて再読しなければならないと思われる方法であるならthatsです。
& &は、2つの変数が真を返すかどうかをチェックしませんか? のように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.';
}
は、いくつかのテストとその作業をしました。 上記のように何か問題がありますか?文字列は、2つの異なるものにすることはできませんので
おかげ
が、私は基本的にここに文字列を代入し、それを文字列に比較しています。これはうまくいくが、理由は不明だ。私は、日付変数が '' NOW() ''という文字列であるかどうかをチェックしています。スクリプトの値が必要だとわかったら、この値を渡します。何をすべきかは変数に値 '' NOW() 'を代入することです。後で準備関数を実行します。データベースフィールド 'date'に値を代入すると、mysql関数' 'NOW()''をそれに送ります。 – Zubair1
btw、私は別の機能で同様の動作をしています。しかし、それは何らかの未知の理由でうまくいっています。 – Zubair1
は、より説明しやすくするために、より多くのコードで更新されています。 – Zubair1