key = $key; } $this->value = $value; $this->created = time(); $this->expires = is_numeric( $expires ) ? max( 0, intval( $expires ) ) : null; } /** * Getter implementation for key and value properties. * * @deprecated use proper getters * * @param string $name * * @return mixed property value or null */ public function __get( $name ) { $result = null; switch ( $name ) { case 'key' : case 'value' : $result = $this->$name; break; } return $result; } /** * Setter for key and value properties. * * @deprecated use proper setters * * @param string $name * @param mixed $value */ public function __set( $name, $value ) { switch ( $name ) { case 'key' : if ( is_string( $value ) ) { $this->key = $value; } break; case 'value' : $this->value = $value; break; } } /** * Provide the key of this object. * * @since 3.6.0 * * @return string */ public function get_key() { return $this->key; } /** * Set the key of this object. * * @since 3.6.0 * * @param string $key */ public function set_key( $key ) { if ( is_string( $key ) ) { $this->key = $key; } } /** * Provide the value of this object. * * @since 3.6.0 * * @return mixed */ public function get_value() { return $this->value; } /** * Set the value of this object. * * @since 3.6.0 * * @param mixed $value */ public function set_value( $value ) { $this->value = $value; } /** * Set expires. * * @since 4.0.0 * * @param int|null $expires */ public function set_expires( $expires ) { $this->expires = is_numeric( $expires ) ? max( 0, intval( $expires ) ) : null; } /** * Provide expires. * * @since 4.0.0 * * @return int|null */ public function get_expires() { return $this->expires; } /** * Expired. * * @since 4.0.0 * * @return boolean */ public function has_expired() { $expired = false; // auto-invalidate objects without timestamp if ( $this->created === null ) { $expired = true; } else { if ( $this->expires !== null ) { if ( time() > ( $this->created + $this->expires ) ) { $expired = true; } } } return $expired; } }