2013-05-07 62 views
0

變量$現在不會顯示,除非它被轉儲。它被填充。它根本不顯示「現在是空的」字符串。除非它是var_dump或var_exported,否則它不會顯示$內的內容。可變空白直到傾倒

$ipData = json_decode($ttt, true); 
$now=""; 
if ($ipData['timezone']) { 
    $tz = new DateTimeZone($ipData['timezone']); 
    $now = new DateTime('now', $tz); // DateTime object corellated to user's timezone 
} else { 
    // we can't determine a timezone - do something else... 
} 



if($now==""){echo "now is empty";} 

echo "<br /> 
<br /> 
".$now->timezone.$now->date; 
var_dump($now); 

} 

如果(isset($ NOW)){回聲「它被設置。」;}這肯定設置,雖然我將它設置爲「」之前,我確實把它稱爲,所以不管它被初始化。

即使刪除$ now =「」;顯示它已初始化。後續代碼var_dump($ NOW);回聲這:

object(DateTime)#30(3){[「date」] => string(19)「2013-05-06 22:52:29」[「timezone_type」] => int(3 )[「timezone」] => string(16)「America/New_York」}在var_dump $ now-> timezone等於America/New_York後

+0

(現爲$); echos this:object(DateTime)#30(3){[「date」] => string(19)「2013-05-06 22:52:29」[「timezone_type」] => int(3)[「timezone 「] => string(16)」America/New_York「} var_dump $ now-> timezone等於America/New_York – user2352040 2013-05-07 02:53:34

回答

0

確保您實際輸入的是IF條件。 您可以嘗試isset($ var)以查看var是否已初始化,或者是否爲空($ var)以查看其中是否有內容。 [而不是==「」)

+0

if(isset($ now)){echo」It is set。「;} 這是絕對的集合,儘管我在實際調用它之前將其設置爲「」,所以不管它是什麼初始化的。即使刪除$ now =「」;顯示它已初始化。 var_dump($ now);回聲這個: object(DateTime)#30(3){[「date」] => string(19)「2013-05-06 22:52:29」[「timezone_type」] => int(3)[ 「timezone」] => string(16)「America/New_York」} var_dump $ now-> timezone等於America/New_York後 – user2352040 2013-05-07 02:53:13

1

DateTime返回新的DateTime對象,而不是echo的字符串。 如果你喜歡呼應$now的日期部分,你應該使用format,像下面

echo $now->format('Y-m-d H:i:s'); 

,如果你喜歡呼應$now的時區,你應該使用gettimezonegetname,像下面

echo $now->getTimezone()->getName(); 

他們二人應該是這樣的var_dump低於

echo $now->format('Y-m-d H:i:s').$now->getTimezone()->getName();