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