2013-11-25 79 views
0

我有這樣的代碼:變量如果ISSET不能內被訪問的,如果ISSET聲明

function WriteLog($offer,$values) { 
    $Filename = "./".$offer.date('Ymd').".txt"; 
    $fh = fopen($Filename, 'a') or die("can't open file"); 
    $filecontent = $values; 
    $filecontent .= PHP_EOL; 
    fwrite($fh,$filecontent); 
    fclose($fh); 
} 

$aff = "100"; 

if (isset($HTTP_RAW_POST_DATA)) { 
    echo $aff; 

    WriteLog('events',$aff); 

} 

這裏的問題:$aff變量是不可訪問。在if ISSET語句中迴應$aff不會顯示$aff的值。什麼可能導致這種情況?我如何訪問$aff變量的值?請注意0​​函數已執行,但$aff沒有值。請幫我解決一下這個。謝謝!

+0

檢查這個http://stackoverflow.com/a/12997460/1699833 –

+0

你肯定'WriteLog'在這部分腳本執行?因爲如果設置了'HTTP_RAW_POST_DATA',那麼看起來沒什麼問題。 – Peon

+0

是的,WriteLog被執行。它創建了一個日誌文件,但它是空的。 – maikelsabido

回答

0

它只是一個想法AFF羯羊它走了進去,如果支票或不檢查$ a的值。

$aff = "100"; 

if (isset($HTTP_RAW_POST_DATA)) { 
    var_dump($aff); 
    WriteLog('events',$aff); 
} 
else{ 
    var_dump($aff); 
} 
0

$HTTP_RAW_POST_DATA包含原始POST數據。

在您的情況下$HTTP_RAW_POST_DATA不包含任何值,因此您的if條件失敗並且不打印echo $aff;值。

$aff = "100"; 

if (isset($HTTP_RAW_POST_DATA)) { 
    echo $aff; 

    WriteLog('events',$aff); 
}else{ 
    echo "HTTP_RAW_POST_DATA not set"; 
} 
+0

OP寫道WriteLog被執行,所以應該設置'$ HTTP_RAW_POST_DATA'。 –

+0

$ HTTP_RAW_POST_DATA包含一個值。這就是WriteLog()函數執行的原因。但我想知道爲什麼$ aff不包含價值。 – maikelsabido