#18680 [Opn]: Logical OR fails after value passes through session
| From: | su-php at bossi dot com | Date: | Wed, 31 Jul 2002 19:03:38 +0000 |
| Subject: | #18680 [Opn]: Logical OR fails after value passes through session | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-15708@lists.php.net to get a copy of this message | ||
ID: 18680
User updated by: su-php@bossi.com
Reported By: su-php@bossi.com
Status: Open
Bug Type: *Programming Data Structures
Operating System: Win2K
PHP Version: 4.1.2
New Comment:
I stated that strval() does not work. However a kludge that DOES work
is:
echo "Val : ".((0 + $opt['time']) | (0 + $opt['date']));
Previous Comments:
------------------------------------------------------------------------
[2002-07-31 14:53:07] su-php@bossi.com
PHP version 4.1.1 (Hey it's an internal test bed, no outside
connection)
I am saving user options in an array. The array is then saved to the
session.
the basic variables are:
$TIME_FORMAT_12 = 0x01;
$TIME_FORMAT_24 = 0x02;
$DATE_FORMAT_YMD = 0x04;
$DATE_FORMAT_MDY = 0x08;
$DATE_FORMAT_DMY = 0x10;
$opt['time'] = $TIME_FORMAT_24;
$opt['date'] = $DATE_FORMAT_DMY;
At this point, the array holds numeric values. Now $opt[] is saved to
the session. When it is read back in, I believe the two values are no
longer numeric.
If you OR the base values:
echo "Val: ".($TIME_FORMAT_24 | $DATE_FORMAT_DMY);
echo "Val: ".($opt['time'] | $opt['date');
you get 18 or 0x12.
However if you OR the $opt values _after_ they have been retrieved from
the session:
echo "Val: ".($opt['time'] | $opt['date');
you get 36.
I have tried (strval($opt['time']) | strval($opt['date'))) but it still
fails.
I am using the composite value to perform a logical AND to obtain the
settings: if ( $format_in & $DATE_FORMAT_DMY ) within a function.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=18680&edit=1