data = $data; } /** * @return array */ public function __sleep() { return array( 'data' ); } public function __wakeup() { $this->fss = false; } /** * Set the whole replacement array at once * @param array $data */ public function setArray( $data ) { $this->data = $data; $this->fss = false; } /** * @return array|bool */ public function getArray() { return $this->data; } /** * Set an element of the replacement array * @param string $from * @param string $to */ public function setPair( $from, $to ) { $this->data[$from] = $to; $this->fss = false; } /** * @param array $data */ public function mergeArray( $data ) { $this->data = array_merge( $this->data, $data ); $this->fss = false; } /** * @param ReplacementArray $other */ public function merge( ReplacementArray $other ) { $this->data = array_merge( $this->data, $other->data ); $this->fss = false; } /** * @param string $from */ public function removePair( $from ) { unset( $this->data[$from] ); $this->fss = false; } /** * @param array $data */ public function removeArray( $data ) { foreach ( $data as $from => $to ) { $this->removePair( $from ); } $this->fss = false; } /** * @param string $subject * @return string */ public function replace( $subject ) { if ( function_exists( 'fss_prep_replace' ) ) { if ( $this->fss === false ) { $this->fss = fss_prep_replace( $this->data ); } $result = fss_exec_replace( $this->fss, $subject ); } else { $result = strtr( $subject, $this->data ); } return $result; } }