2009-08-03 54 views
0

我有這些聲明如何比較兩個字符串變量?

$username = $this->users->getUsernameById($file->user); 
$sessionuser = $this->session->userdata('username'); 

我怎麼會去比較兩個值,如果它們匹配,執行代碼? 我

if ($username == $sessionuser){ 

blalghalhalhalhllahblahhblahhblahhh 
} 

然而,即使在兩個變量是一樣的,它似乎並不觸發if聲明。我做錯什麼了嗎?也許不是==,只是=

回答

2

使用strcmp()函數 - 或strcasecmp()進行不區分大小寫的比較。

if (strcmp($username, $sessionuser) == 0) { 
2

一般來說,PHP在比較操作中非常寬容,因爲語言的鬆散類型的動態特性。

試試這個調試代碼:

echo $username . '<br/>' . $sessionuser; 

你可能會發現你期待值實際上不是你得到的值。

另一件事,我經常不得不做的時候通過我的代碼加強是把這樣的事情:

echo 'got here'; 
exit; 

立即裏面,如果塊非常無論是塊不執行,或者是否是該塊內的代碼沒有按照我的預期執行。