PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / lib / wp_session / class-recursive-arrayaccess.php
wp-user-avatar / src / lib / wp_session Last commit date
class-recursive-arrayaccess.php 5 years ago class-wp-session.php 5 years ago wp-session.php 5 years ago
class-recursive-arrayaccess.php
140 lines
1 <?php
2 /**
3 * Multidimensional ArrayAccess
4 *
5 * Allows ArrayAccess-like functionality with multidimensional arrays. Fully supports
6 * both sets and unsets.
7 *
8 * @package WordPress
9 * @subpackage Session
10 * @since 3.6.0
11 */
12
13 // Exit if accessed directly
14 if ( ! defined( 'ABSPATH' ) ) exit;
15
16 /**
17 * Recursive array class to allow multidimensional array access.
18 *
19 * @package WordPress
20 * @since 3.6.0
21 */
22 class Recursive_ArrayAccess implements ArrayAccess {
23 /**
24 * Internal data collection.
25 *
26 * @var array
27 */
28 protected $container = array();
29
30 /**
31 * Flag whether or not the internal collection has been changed.
32 *
33 * @var bool
34 */
35 protected $dirty = false;
36
37 /**
38 * Default object constructor.
39 *
40 * @param array $data
41 */
42 protected function __construct( $data = array() ) {
43 foreach ( $data as $key => $value ) {
44 $this[ $key ] = $value;
45 }
46 }
47
48 /**
49 * Allow deep copies of objects
50 */
51 public function __clone() {
52 foreach ( $this->container as $key => $value ) {
53 if ( $value instanceof self ) {
54 $this[ $key ] = clone $value;
55 }
56 }
57 }
58
59 /**
60 * Output the data container as a multidimensional array.
61 *
62 * @return array
63 */
64 public function toArray() {
65 $data = $this->container;
66 foreach ( $data as $key => $value ) {
67 if ( $value instanceof self ) {
68 $data[ $key ] = $value->toArray();
69 }
70 }
71 return $data;
72 }
73
74 /**
75 * ArrayAccess Implementation
76 **/
77
78 /**
79 * Whether a offset exists
80 *
81 * @link http://php.net/manual/en/arrayaccess.offsetexists.php
82 *
83 * @param mixed $offset An offset to check for.
84 *
85 * @return boolean true on success or false on failure.
86 */
87 public function offsetExists( $offset ) {
88 return isset( $this->container[ $offset ]) ;
89 }
90
91 /**
92 * Offset to retrieve
93 *
94 * @link http://php.net/manual/en/arrayaccess.offsetget.php
95 *
96 * @param mixed $offset The offset to retrieve.
97 *
98 * @return mixed Can return all value types.
99 */
100 public function offsetGet( $offset ) {
101 return isset( $this->container[ $offset ] ) ? $this->container[ $offset ] : null;
102 }
103
104 /**
105 * Offset to set
106 *
107 * @link http://php.net/manual/en/arrayaccess.offsetset.php
108 *
109 * @param mixed $offset The offset to assign the value to.
110 * @param mixed $value The value to set.
111 *
112 * @return void
113 */
114 public function offsetSet( $offset, $data ) {
115 if ( is_array( $data ) ) {
116 $data = new self( $data );
117 }
118 if ( $offset === null ) { // don't forget this!
119 $this->container[] = $data;
120 } else {
121 $this->container[ $offset ] = $data;
122 }
123
124 $this->dirty = true;
125 }
126
127 /**
128 * Offset to unset
129 *
130 * @link http://php.net/manual/en/arrayaccess.offsetunset.php
131 *
132 * @param mixed $offset The offset to unset.
133 *
134 * @return void
135 */
136 public function offsetUnset( $offset ) {
137 unset( $this->container[ $offset ] );
138 }
139 }
140