Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
<?php
/**
 * Copyright 2008-2017 Horde LLC (http://www.horde.org/)
 *
 * @category  Horde
 * @copyright 2008-2017 Horde LLC
 * @license   http://www.horde.org/licenses/bsd BSD
 * @package   Support
 */

/**
 * Class that can substitute for any object and safely do nothing.
 *
 * @category  Horde
 * @copyright 2008-2017 Horde LLC
 * @license   http://www.horde.org/licenses/bsd BSD
 * @package   Support
 */
class Horde_Support_Stub implements ArrayAccess, Countable, IteratorAggregate
{
    /**
     * Cooerce to an empty string.
     *
     * @return string
     */
    public function __toString()
    {
        return '';
    }

    /**
     * Ignore setting the requested property.
     *
     * @param string $key  The property.
     * @param mixed $val   The property's value.
     */
    public function __set($key, $val)
    {
    }

    /**
     * Return null for any requested property.
     *
     * @param string $key  The requested object property.
     *
     * @return null  Null.
     */
    public function __get($key)
    {
        return null;
    }

    /**
     * Property existence.
     *
     * @param string $key  The requested object property.
     *
     * @return boolean  False.
     */
    public function __isset($key)
    {
        return false;
    }

    /**
     * Ignore unsetting a property.
     *
     * @param string $key  The requested object property.
     */
    public function __unset($key)
    {
    }

    /**
     * Gracefully accept any method call and do nothing.
     *
     * @param string $method  The method that was called.
     * @param array $args     The method's arguments.
     */
    public function __call($method, $args)
    {
    }

    /**
     * Gracefully accept any static method call and do nothing.
     *
     * @param string $method  The method that was called.
     * @param array $args     The method's arguments.
     */
    public static function __callStatic($method, $args)
    {
    }

    /* ArrayAccess methods. */

     /**
      */
> #[ReturnTypeWillChange]
public function offsetGet($offset) { return null; } /** */
> #[ReturnTypeWillChange]
public function offsetSet($offset, $value) { } /** */
> #[ReturnTypeWillChange]
public function offsetExists($offset) { return false; } /** */
> #[ReturnTypeWillChange]
public function offsetUnset($offset) { } /* Countable methods. */ /** */
> #[ReturnTypeWillChange]
public function count() { return 0; } /* IteratorAggregate method. */ /** */
> #[ReturnTypeWillChange]
public function getIterator() { return new ArrayIterator(array()); } }