2010-10-02 177 views
0

有誰知道這個問題的話,我有以下代碼:這是一個PHP'錯誤'還是我錯過了什麼?

if (strtotime($unlockInfo->UnlockReviewDate) < time()) { 
    echo "<h3>Please review your details and ensure they are accurate and up to date.</h3>"; 
    $verifState = validateUnlockCode($db_conn, $unlockInfo->UnlockCode); 
} 

現在因爲是似乎工作正常,但就是我似乎周圍追逐的年齡問題。

基本上$ unlockInfo是一個從mySql查詢返回的對象,您可能會看到的是根據當前時間評估的。現在,validateUnlockCode函數在特定情況下具有修改數據庫和$ unlockInfo對象的能力。

但是,只有在評估if語句之後才能修改任何內容。但是當我錯過if語句的空間時,即。

if(strto.... 

這似乎會導致在驗證if之前設置$ verifState,因此調用validate函數並非常不情願地修改數據庫。

這是正常的嗎?是應該發生的?對不起,我對這個有點困惑。

+1

我的第一本能是你完全誤解了發生了什麼事,但我過去錯了。試着將代碼燒錄成一個小樣本,以演示您遇到的問題 - 大型(可能非常複雜)程序的一個片段很難調試:) – gnud 2010-10-02 18:46:25

回答

0

if後面的空格不影響任何內容。

如果strtotime($unlockInfo->UnlockReviewDate)失敗,那麼它(false == 0)肯定會小於當前的UNIX時間戳。這是我檢查的第一件事。

strtotime返回什麼? UnlockReviewDate的格式是什麼?

相關問題