Creates a new set using values in either the current instance or in another set, but not in both

- « Ds\Set::union

- Ds\Stack »

- PHP Manual
- Ds\Set
- Creates a new set using values in either the current instance or in another set, but not in both

# Ds\Set::xor

(PECL ds >= 1.0.0)

Ds\Set::xor — Creates a new set using values in either the current instance or in another set, but not in both

### Description

public Ds\Set::xor(Ds\Set `$set`): Ds\Set

Creates a new set containing values in the current instance as well as another `set`, but not in both.

`A ⊖ B = {x : x ∈ (A \ B) ∪ (B \ A)}`

### Parameters

`set`

  The other set.

### Return Values

A new set containing values in the current instance as well as another `set`, but not in both.

### See Also

- » Symmetric Difference on Wikipedia

### Examples

Example #1 Ds\Set::xor() example

    <?php$a = new \Ds\Set([1, 2, 3]);$b = new \Ds\Set([3, 4, 5]);var_dump($a->xor($b));?>

The above example will output something similar to:

    object(Ds\Set)#3 (4) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [2]=>
      int(4)
      [3]=>
      int(5)
    }