HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/triad-infosec/wp-content/plugins/the-events-calendar/src/Tribe/Constants.php
<?php


class Tribe__Events__Constants implements ArrayAccess {

	/**
	 * @var bool Whether the class will define and read real constants or not.
	 */
	protected $volatile;

	/**
	 * @var array An array that will store volatile values if the class is used in volatile mode.
	 */
	protected $volatile_values;

	/**
	 * Tribe__Events__Constants constructor.
	 *
	 * @param bool $volatile If `true` the class will not define and read real constants.
	 */
	#[\ReturnTypeWillChange]
	public function __construct( $volatile = false ) {
		$this->volatile        = $volatile;
		$this->volatile_values = [];
	}

	/**
	 * Whether a constant is defined or not.
	 *
	 * @param string $offset
	 *
	 * @return bool
	 */
	#[\ReturnTypeWillChange]
	public function offsetExists( $offset ): bool {
		return $this->volatile ? isset( $this->volatile_values[ $offset ] ) : defined( $offset );
	}

	/**
	 * Gets a constant value.
	 *
	 * @param string $offset
	 *
	 * @return mixed
	 */
	#[\ReturnTypeWillChange]
	public function offsetGet( $offset ) {
		return $this->volatile ? $this->volatile_values[ $offset ] : constant( $offset );
	}

	/**
	 * Sets the value of a constant if not already defined.
	 *
	 * @param string $offset
	 * @param mixed $value
	 */
	#[\ReturnTypeWillChange]
	public function offsetSet( $offset, $value ): void {
		if ( $this->volatile && ! isset( $this->volatile_values[ $offset ] ) ) {
			$this->volatile_values[ $offset ] = $value;
		} else {
			if ( ! defined( $offset ) ) {
				define( $offset, $value );
			}
		}
	}

	/**
	 * Unsets a constant if in volatile mode.
	 *
	 * @param string $offset
	 */
	#[\ReturnTypeWillChange]
	public function offsetUnset( $offset ): void {
		if ( $this->volatile ) {
			$this->volatile_values = array_diff( $this->volatile_values, [ $offset ] );
		} else {
			// no op
		}
	}
}