Get array functions work on ArrayObject

Eine Erweiterung der ArrayObject Klasse, um array_* Funktionen mit dem ArrayObject anwenden zu können. Die meisten Array Funktionen beginnend mit array_* werden abgedeckt. Für andere Array Funktionen, wie z.B. in_array() wurden Methoden geschrieben, die diese Funktionen abbilden. Die Klasse ist im Umfang der Array Funktionen nicht komplett. <br/> <br/> @example <br/> $myArrayObject = new ArrayObject(['eins', 'zwo', 'drei']); <br/> $result = $myArrayObject->has('eins'); // returns true <br/> $myArrayObject->array_flip(); // returns ['drei', 'zwo', 'eins']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// namespace
namespace MMNewmedia\Util;
/**
 * Diese Klasse erweitert die ArrayObject Klasse aus der SPL um
 * sinnvolle array_* Methoden, die so nicht im ursprünglichen ArrayObject
 * Umfang enthalten sind
 *
 * @author Marcel Maaß <info@mm-newmedia.de>
 * @copyright MM Newmedia <http://www.mm-newmedia.de>
 * @package de.mmnewmedia.framework
 * @subpackage util
 * @since 2013-12-11
 * @version
 */
class ArrayObject extends \ArrayObject {
    /**
     * Setzt einen euen Wert für den übergebenen Index
     * Ist der neue Wert ein Array, wird das Array automatisch in ein ArrayObject gewandelt
     *
     * @param mixed $index Der Index, der gesetzt werden soll
     * @param mixed $value Der neue Wert für den übergebenen Index
     */
    public function offsetSet($index$value) {
        parent::offsetSet($indexis_array($value) ? new ArrayObject($value) : $value);
    }
    
    /**
     * Ermöglicht die Nutzung von PHP Array Funktionen mit der ArrayObject Klasse
     *
     * @param string $func Name der Funktion
     * @param array $arg Argumente für die aufzurufende Funktion
     * @throws BadMethodCallException
     * @return mixed
     */
    public function __call($func$arg) {
        if ( (!is_callable([$this$func]) && !is_callable($func) ) || substr($func06) !== 'array_') {
            throw new \BadMethodCallException(__CLASS__ . '->' . $func);
        }
        
        return call_user_func_array($funcarray_merge([$this->getArrayCopy()]$arg));
    }
    
    /**
     * Fügt ein Array an der übergebenen Position dieses Arrays ein
     *
     * @param array $src 
X

Url: http://www.mm-newmedia.de

Language: PHP | User: ezkimo | Created: Oct 18, 2014 | Tags: php ArrayObject array functions oop