On Fri, 2006-11-17 at 02:54 -0700, Michael wrote: > This will be my last post on this thread of discussion. > > Thanks to all who replied, I have it figured out. > > I guess my only problem with the way the !== and === operators work in this situation is this: > > Logic dictates that if something evaluates to NOT FALSE it must be TRUE. > Regardless of the type, regardless of the species, breed, flavor etc. Sure logic dictates that if a return type is confined to the boolean set then if it is not false it must be true; however, strpos() may return a value from the set of booleans or a value from the set of integers. As such, it can have many more return values than only 2. > if !== evaluates to TRUE then === should also under the same conditions (all other things being equal) Nope. There are two conditions checkeck when using !== and ===. One check is the type, the other check is the value. This leaves 4 possible scenarios: true - if an only if the type an the value are the same false - if the type is not the same false - if the value is not the same false - if the type and value are not the same > if !== evaluates an integer 0 to TRUE, so should ===, it can't be true and still return a false value. An integer 0 is not evaluated to true, a comparison to see if an value is exactly equal to the integer 0 may return true. > The !== and === operators work differently, they should be > complimentary. Actually they work the same... I'll demonstrate: <?php function equals_equals_equals( $value1, $value2 ) { if( get_type( $value1 ) == get_type( $value2 ) && $value1 == $value2 ) { return true; } return false; } function not_equals_equals( $value1, $value2 ) { return !equals_equals_equals( $value1, $value2 ); } ?> So there you have it. The implementation of not_equals_equals() uses the ! operator on the equals_equals_equals() function and this will give you the same behaviour as your currently experiencing and having trouble swallowing. Cheers, Rob. -- .------------------------------------------------------------. | InterJinn Application Framework - http://www.interjinn.com | :------------------------------------------------------------: | An application and templating framework for PHP. Boasting | | a powerful, scalable system for accessing system services | | such as forms, properties, sessions, and caches. InterJinn | | also provides an extremely flexible architecture for | | creating re-usable components quickly and easily. | `------------------------------------------------------------' -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php