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($index, is_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($func, 0, 6) !== 'array_') {
throw new \BadMethodCallException(__CLASS__ . '->' . $func);
}
return call_user_func_array($func, array_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