mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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']);
 | 
						|
    }
 | 
						|
}
 |