php中 两个数组使用+号代表什么意思
<?php class User{ private static $tags=[]; public $name; public $age; public function __construct(){ } public function __set($key,$val){ $this->$key=$val; } public function __get($key){ return $this->$key; } public function info($d,$message){ return "{$this->name}同学 {$this->age}岁"."-----{$d}:{$message}"; } public static function import(array $tags){ self::$tags[]=$tags+self::$tags; } public static function getTags(){ return self::$tags; } } User::import(["name"=>"jjj"]); User::import(["name"=>"dddd"]); User::import(["name"=>"parent"]); print_r(User::getTags()); 这个意思 好像是累加,一级一级的向下加 ,看看结果吧: 我觉着如果只是为了顺序来使用这样的一个类型,比较差 执行结果:
Array
(
[0] => Array
(
[name] => jjj
)
[1] => Array
(
[name] => dddd
[0] => Array
(
[name] => jjj
)
)
[2] => Array
(
[name] => parent
[0] => Array
(
[name] => jjj
)
[1] => Array
(
[name] => dddd
[0] => Array
(
[name] => jjj
)
)
)
)
如果上面例子看不太明白,紧接着看下面的操作实例:
最后结果:
两个数组中,如果键值都一样的话,前面数组中 直接替换后面的。
下面我们看一个最简单的例子:
示例1
键一样就替换了。
示例2
array_merge 函数合并结果示例如下:
使用场景:
不需要多余参数时候,进行替换。
示例3:
//水果 $data1=[ '苹果', '香蕉' ]; //干果 $data2=[ '瓜子', '花生', '饼干' ]; echo '<pre>'; print_r($data1+$data2); echo '</pre>'; //水果 $data1=[ 10=>'榴莲', '苹果', '香蕉' ]; //干果 $data2=[ '瓜子', '花生', '饼干' ]; echo '<pre>'; print_r($data1+$data2); echo '</pre>';
示例四:
//水果 $data1=[ 'liulian'=>'榴莲', '苹果', '香蕉' ]; //干果 $data2=[ '瓜子', '花生', '饼干' ]; echo '<pre>'; print_r($data1+$data2); echo '</pre>';
切记,只有是出现数字索引的key,
当前及后面没有key的都会被当前索引key进行累加。
其实这里和一个参数是类似,array_merge() 这个函数保留不一样的键值,都在里面。
上面的解释不是很到位,那么我们再来看看如何说明这是做什么 的
https://www.jb51.net/article/98166.htm