why is (intval('444-44444') == '444-44444') EQUAL??!
| From: | Daevid Vincent | Date: | Fri, 22 Jun 2012 02:27:25 +0000 |
| Subject: | why is (intval('444-44444') == '444-44444') EQUAL??! | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-318284@lists.php.net to get a copy of this message | ||
Huh? Why is this equal??!
php > $id = '444-44444';
php > var_dump($id, intval($id));
string(9) "444-44444"
int(444)
php > if (intval($id) == $id) echo 'equal'; else echo 'not equal';
equal
or in other words:
php > if (intval('444-44444') == '444-44444') echo 'equal'; else
echo 'not equal';
equal
I would expect PHP to be evaluating string "444-44444" against integer "444"
(or string either way)
however, just for giggles, using === works...
php > if ($id === intval($id)) echo 'equal'; else echo 'not equal';
not equal