mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-10-31 18:47:33 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @link https://www.yiiframework.com/
 | |
|  * @copyright Copyright (c) 2008 Yii Software LLC
 | |
|  * @license https://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 https://www.php.net/manual/en/function.var-export.php
 | |
|      * @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']);
 | |
|     }
 | |
| }
 | 
