2013-08-21 98 views
0

給出的例子非常簡單,所以我不認爲它需要任何解釋。 我找不到可以解釋這種行爲的文檔上的任何參考,我也發現了一些workarrounds這個,所以你並不需要打擾他們(預先感謝,但是)。

我只是真的很喜歡,如果some1能解釋這.....沒有任何意義,我:

// comma separated IDs to later use in SQL statement 
$var = '10,20,30,40,743,102394'; 

$multi_intval = intval($var); // same with (int) $var 
$multi_string = strval($var); // same with (string) $var 
var_dump($multi_intval, $multi_string, $multi_intval == $multi_string); 

    // result 
    int(10) string(22) "10,20,30,40,743,102394" bool(true) 

如何爲10等於22 strlen的字符串?

回答

0

我只是碰到了這個尋找另一個答案,所以即使它是舊的如果有人遇到它,給出一個答案。

從PHP文檔hereIf you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number

因爲這是你比較intval($var) == strval($var)改爲類似intval($var) == intval(strval($var))這當然是相等的(我不知道那是什麼語言使用字符串更改爲整型,以上只是視覺表現)。如果您確實需要知道它們是否相同,請使用===

+0

1年後,只想說謝謝,它已經回答了,但我猜所有者刪除了他的答案...我實際上有一個答案說,但它也被刪除,猜測管理員希望我使用評論而不是:) 編輯:實際上2年後eheh,但你花了整整一年的時間來回答:D謝謝! –