Yes... it is the | operator that is doing it.

>From the man pages:

$a & $b And Bits that are set in both $a and $b are set.
$a | $b Or Bits that are set in either $a or $b are set.


So, let's say:

$a = 5; # 0101
$b = 3; # 0011

Then:

$a & $b

  0101
& 0011
= 0001 (1)

and

$a | $b

  0101
& 0011
= 0111 (7)

does that help?  It's not *summing* the values... although in your case it
looks like it is... it's OR'ing them.


On Mon, 3 Mar 2003, Dan Sabo wrote:

> Thanks Philip,
>
> OK I understand the binary thing but that line, I just don't see it, It's
> not the or operator that's summing up the two binary values is it?
>
> Dan
>
> -----Original Message-----
> From: Philip Hallstrom [mailto:[EMAIL PROTECTED]
> Sent: Monday, March 03, 2003 3:53 PM
> To: Dan Sabo
> Cc: [EMAIL PROTECTED]
> Subject:  RE: Bitwise operator question
>
>
> Yes.  Oops.
>
> -philip
>
> On Mon, 3 Mar 2003, Dan Sabo wrote:
>
> > Hi Phillip,
> >
> > Don't U mean
> >
> >     0001
> > |   0100
> > =   0101
> >
> > ?
> >
> > Dan
> >
> > -----Original Message-----
> > From: Philip Hallstrom [mailto:[EMAIL PROTECTED]
> > Sent: Monday, March 03, 2003 2:33 PM
> > To: Dan Sabo
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: Bitwise operator question
> >
> >
> > Here's how I think about it...
> >
> > CREATE_RECORDS = 1 in decimal and 0001 in binary.
> > ALTER_RECORDS = 4 in decimal and 0101 in binary.
> >
> > that line returns a binary string where *any* of the bits are 1, so line
> > them up:
> >
> >    0001
> > |  0101
> > =  0101
> >
> > which is 5.
> >
> > On Mon, 3 Mar 2003, Dan Sabo wrote:
> >
> > > Hi,
> > >
> > > I'm reading the description of Bitwise Operators on page 81 of
> > "Professional
> > > PHP 4", the Wrox book.  In the highlighted example on that page, the
> line
> > of
> > > code...
> > >
> > > $user_permissions = CREATE_RECORDS | ALTER_RECORDS;
> > >
> > > the description in the book says that this line is building a set of
> user
> > > permissions out of the previously created constants with the OR operator
> > (I
> > > understand what OR means).  The value of $user_permissions is set to
> > either
> > > 1 or 4, which is in fact 5 (0101).  But how is this single line doing
> > that?
> > > The explanation was cryptic (to me).
> > >
> > >
> > >
> > > --
> > > PHP General Mailing List (http://www.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to