‪TYPO3CMS  10.4
TYPO3\CMS\Core\Type\BitSet Class Reference
Inheritance diagram for TYPO3\CMS\Core\Type\BitSet:
TYPO3\CMS\Extbase\Reflection\ClassSchema\PropertyCharacteristics

Public Member Functions

 __construct (int $set=0)
 
 set (int $bitIndex)
 
 setValue (int $bitIndex, bool $value)
 
 unset (int $bitIndex)
 
bool get (int $bitIndex)
 
 clear ()
 
 and (BitSet $set)
 
 or (BitSet $set)
 
 xor (BitSet $set)
 
 andNot (BitSet $set)
 
int __toInt ()
 
string __toString ()
 

Private Attributes

int $set
 

Detailed Description

The BitSet class is a helper class to manage bit sets. It eases the work with bits and bitwise operations by providing a reliable and tested API.

The class can be used standalone or as a parent for more verbose classes that handle bit sets.

The functionality is best described by an example:

define('PERMISSIONS_NONE', 0b0); // 0 define('PERMISSIONS_PAGE_SHOW', 0b1); // 1 define('PERMISSIONS_PAGE_EDIT', 0b10); // 2 define('PERMISSIONS_PAGE_DELETE', 0b100); // 4

$bitSet = new \TYPO3\CMS\Core\Type\BitSet(PERMISSIONS_PAGE_SHOW | PERMISSIONS_PAGE_EDIT); $bitSet->get(PERMISSIONS_PAGE_SHOW); // true $bitSet->get(PERMISSIONS_PAGE_DELETE); // false

Another example shows how to possibly extend the class:

class Permissions extends \TYPO3\CMS\Core\Type\BitSet { public const NONE = 0b0; // 0 public const PAGE_SHOW = 0b1; // 1

public function isGranted(int $permission): bool { return $this->get($permission); }

public function grant(int $permission): void { $this->set($permission); } }

$permissions = new Permissions(); $permissions->isGranted(Permissions::PAGE_SHOW); // false $permissions->grant(Permissions::PAGE_SHOW); $permissions->isGranted(Permissions::PAGE_SHOW); // true

Definition at line 61 of file BitSet.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\Type\BitSet::__construct ( int  $set = 0)
Parameters
int$set

Definition at line 70 of file BitSet.php.

References TYPO3\CMS\Core\Type\BitSet\$set.

Member Function Documentation

◆ __toInt()

int TYPO3\CMS\Core\Type\BitSet::__toInt ( )

Returns the integer representation of the internal set. (As PHP does not know a byte type, the internal set is already handled as an integer and can therefore directly be returned)

Returns
‪int

Definition at line 184 of file BitSet.php.

References TYPO3\CMS\Core\Type\BitSet\$set.

Referenced by TYPO3\CMS\Core\Type\BitSet\and(), TYPO3\CMS\Core\Type\BitSet\andNot(), TYPO3\CMS\Core\Type\BitSet\or(), and TYPO3\CMS\Core\Type\BitSet\xor().

◆ __toString()

string TYPO3\CMS\Core\Type\BitSet::__toString ( )

Returns the (binary) string representation of the internal (integer) set.

Returns
‪string

Definition at line 194 of file BitSet.php.

◆ and()

TYPO3\CMS\Core\Type\BitSet::and ( BitSet  $set)

Performs a logical AND of this target bit set with the argument bit set. This bit set is modified so that each bit in it has the value true if and only if it both initially had the value true and the corresponding bit in the bit set argument also had the value true.

Parameters
BitSet$set

Definition at line 134 of file BitSet.php.

References TYPO3\CMS\Core\Type\BitSet\__toInt().

◆ andNot()

TYPO3\CMS\Core\Type\BitSet::andNot ( BitSet  $set)

Clears all of the bits in this BitSet whose corresponding bit is set in the specified BitSet.

Parameters
BitSet$set

Definition at line 172 of file BitSet.php.

References TYPO3\CMS\Core\Type\BitSet\__toInt().

◆ clear()

TYPO3\CMS\Core\Type\BitSet::clear ( )

Sets all of the bits in this BitSet to false.

Definition at line 122 of file BitSet.php.

◆ get()

bool TYPO3\CMS\Core\Type\BitSet::get ( int  $bitIndex)
Parameters
int$bitIndex
Returns
‪bool

Definition at line 114 of file BitSet.php.

◆ or()

TYPO3\CMS\Core\Type\BitSet::or ( BitSet  $set)

Performs a logical OR of this bit set with the bit set argument. This bit set is modified so that a bit in it has the value true if and only if it either already had the value true or the corresponding bit in the bit set argument has the value true.

Parameters
BitSet$set

Definition at line 146 of file BitSet.php.

References TYPO3\CMS\Core\Type\BitSet\__toInt().

◆ set()

TYPO3\CMS\Core\Type\BitSet::set ( int  $bitIndex)

Performs the same operation as {

See also
or()} without the need to create a BitSet instance from an integer value.
Parameters
int$bitIndex

Definition at line 81 of file BitSet.php.

◆ setValue()

TYPO3\CMS\Core\Type\BitSet::setValue ( int  $bitIndex,
bool  $value 
)
Parameters
int$bitIndex
bool$value

Definition at line 90 of file BitSet.php.

References TYPO3\CMS\Core\Type\BitSet\unset().

◆ unset()

TYPO3\CMS\Core\Type\BitSet::unset ( int  $bitIndex)

Performs the same operation as {

See also
andNot()} without the need to create a BitSet instance from an integer value.
Parameters
int$bitIndex

Definition at line 105 of file BitSet.php.

Referenced by TYPO3\CMS\Core\Type\BitSet\setValue().

◆ xor()

TYPO3\CMS\Core\Type\BitSet::xor ( BitSet  $set)

Performs a logical XOR of this bit set with the bit set argument. This bit set is modified so that a bit in it has the value true if and only if one of the following statements holds:

  • ‪The bit initially has the value true, and the corresponding bit in the argument has the value false.
  • ‪The bit initially has the value false, and the corresponding bit in the argument has the value true.
Parameters
BitSet$set

Definition at line 162 of file BitSet.php.

References TYPO3\CMS\Core\Type\BitSet\__toInt().

Member Data Documentation

◆ $set

int TYPO3\CMS\Core\Type\BitSet::$set
private