Example:

```
set_error_handler(array($this, 'handleError'), E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE);
```

what does that suppose to mean?

## Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

### Solution 1

It is the bitwise not operator (also called “complement”). That is the bits set in `~ $a`

are those that are not set in `$a`

.

So then

```
E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE
```

is the bits set in `E_ALL`

and those not set in `E_STRICT`

, `E_WARNING`

and `E_NOTICE`

. This basically says all errors except strict, warning and notice errors.

### Solution 2

It’s the bitwise-not operator. For example the bitwise negation of a number with binary representation `01011110`

would be `10100001`

; every single bit is flipped to its opposite.

### Solution 3

The distinction between bitwise (&, |, ~) and non-bitwise (&&, ||, !) operators is that bitwise are applied across *all* bits in the integer, while non-bitwise treat an integer as a single “true” (non-zero) or “false” (zero) value.

Say, `$flag_1 = 00000001`

and `$flag_2 = 00000010`

. Both would be “true” for non-bitwise operations, (`$flag_1 && $flag_2`

is “true”), while the result of `$flag_1 & $flag_2`

would be 00000000 and the result of `$flag_1 | $flag_2`

would be 00000011. `~$flag_2`

would be 11111101, which when bitwise-ANDed to a running result would *clear* that bit position (xxxxxx0x). `$flag_2`

bitwise-ORed to a running result would *set* that bit position (xxxxxx1x).

### Solution 4

See Bitwise Operators : it’s the “not” operator *(quoting)* :

`~ $a`

Bits that are set in`$a`

are

not set, and vice versa.

Which means, taking an example inspired from what you posted, that this portion of code :

```
var_dump(decbin(E_STRICT));
var_dump(decbin(~E_STRICT));
```

Will get you this output :

```
string '100000000000' (length=12)
string '11111111111111111111011111111111' (length=32)
```

*(Add a couple of 0 for padding on the left of the first line, and you’ll see what I mean)*

Removing the padding from the second output, you get :

```
100000000000
011111111111
```

Which means the `~`

operator gave a `0`

bit for each bit that was equal to `1`

in the intput — and vice-versa,

### Solution 5

It’s the `not`

**bitwise** operator. Read about bitwise operators here:

http://php.net/manual/en/language.operators.bitwise.php

**Note: Use and implement solution 1 because this method fully tested our system.Thank you 🙂**

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0