You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
1.9 KiB
93 lines
1.9 KiB
<?php |
|
/** |
|
* @link http://www.yiiframework.com/ |
|
* @copyright Copyright (c) 2008 Yii Software LLC |
|
* @license http://www.yiiframework.com/license/ |
|
*/ |
|
|
|
namespace yii\helpers; |
|
|
|
use yii\base\InvalidConfigException; |
|
|
|
/** |
|
* Object that represents the replacement of array value while performing [[ArrayHelper::merge()]]. |
|
* |
|
* Usage example: |
|
* |
|
* ```php |
|
* $array1 = [ |
|
* 'ids' => [ |
|
* 1, |
|
* ], |
|
* 'validDomains' => [ |
|
* 'example.com', |
|
* 'www.example.com', |
|
* ], |
|
* ]; |
|
* |
|
* $array2 = [ |
|
* 'ids' => [ |
|
* 2, |
|
* ], |
|
* 'validDomains' => new \yii\helpers\ReplaceArrayValue([ |
|
* 'yiiframework.com', |
|
* 'www.yiiframework.com', |
|
* ]), |
|
* ]; |
|
* |
|
* $result = \yii\helpers\ArrayHelper::merge($array1, $array2); |
|
* ``` |
|
* |
|
* The result will be |
|
* |
|
* ```php |
|
* [ |
|
* 'ids' => [ |
|
* 1, |
|
* 2, |
|
* ], |
|
* 'validDomains' => [ |
|
* 'yiiframework.com', |
|
* 'www.yiiframework.com', |
|
* ], |
|
* ] |
|
* ``` |
|
* |
|
* @author Robert Korulczyk <robert@korulczyk.pl> |
|
* @since 2.0.10 |
|
*/ |
|
class ReplaceArrayValue |
|
{ |
|
/** |
|
* @var mixed value used as replacement. |
|
*/ |
|
public $value; |
|
|
|
|
|
/** |
|
* Constructor. |
|
* @param mixed $value value used as replacement. |
|
*/ |
|
public function __construct($value) |
|
{ |
|
$this->value = $value; |
|
} |
|
|
|
/** |
|
* Restores class state after using `var_export()`. |
|
* |
|
* @param array $state |
|
* @return ReplaceArrayValue |
|
* @throws InvalidConfigException when $state property does not contain `value` parameter |
|
* @see var_export() |
|
* @since 2.0.16 |
|
*/ |
|
public static function __set_state($state) |
|
{ |
|
if (!isset($state['value'])) { |
|
throw new InvalidConfigException('Failed to instantiate class "ReplaceArrayValue". Required parameter "value" is missing'); |
|
} |
|
|
|
return new self($state['value']); |
|
} |
|
}
|
|
|