Search code examples
phpbit-manipulationflags

How can I remove a bit flag in PHP int?


Let's say I have

$flags=JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;

How can I then remove JSON_UNESCAPED_SLASHES from $flags?


Solution

  • It's not "C method" it's just applying bitwise operators

    $flags=JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
    
    var_dump($flags & JSON_UNESCAPED_SLASHES); // flag should be set to 1
    
    $flags &= ~JSON_UNESCAPED_SLASHES; // remove it  
    
    var_dump($flags & JSON_UNESCAPED_SLASHES); // flag should be set to 0