[snip] The value of the expression is the value assigned. Since the ! operator will always return a boolean then the assigned value is going to be a boolean. So $r will always contain a boolean for the purposes of the ternary operation. And it also work if the statement is not ternary [/snip] And now for a little clarity. THIS is not a ternary if($r = !$r) it is a conditional test. ? foo : bar; ...is the ternary operation. Just wanted to clean up the usage there. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php