Neden / nasıl PHP çalışmalarında + ile diziler katılmadan nedir?

3 Cevap php

Bunu yapabilirim PHP son zamanlarda fark ettik.

$myNewArray = $oldArray + $someArray;

Bu PHP manipüle dizilişlerini önce gördüğüm bir şey tamamen farklı görünüyor.

Nasıl ve neden çalışır? Tüm tuzaklar var mı?

Geçenlerde ben array_unshift() ve array_merge() kullanmış olabilir bazı yerlerde kullanmaya başladı.

3 Cevap

Şüphe, consult the documentation. Davranış array_merge farklıdır: array_merge ekler / overwrites, + sadece ekler.

Örnek:

<?php
$a = Array('foo'=>'bar','baz'=>'quux');
$b = Array('foo'=>'something else','xyzzy'=>'aaaa');

$c = $a + $b;
$d = array_merge($a,$b);

print_r($c);
print_r($d);

Çıktı - Gördüğünüz gibi, array_merge $ b ['foo'] $ ile bir ['foo'] değerini overwrote; Bir + $ b vermedi:

Array
(
    [foo] => bar
    [baz] => quux
    [xyzzy] => aaaa
)
Array
(
    [foo] => something else
    [baz] => quux
    [xyzzy] => aaaa
)

Iki işlenen diziler olduğunda bir operasyon + için derleyici tanımlanır. Bu onlara katılmayı sezgisel operasyon yapar.

Tuzaklardan biri değişkenlerden biri bir dizi değil ne olur.

array_merge:

Warning: array_merge(): Argument #2 is not an array in ...

+ Operatörü:

Fatal error: Unsupported operand types in ...