function intersection(Set $that) {
        $intersection = $this->cloneEmpty();

        $this->addIf($intersection, $this, [$that, 'has']);

        return $intersection;
    }
function intersection(Set $that) {
        $intersection = $this->cloneEmpty();

        $this->addIf($intersection, $this, [$that, 'has']);

        return $intersection;
    }
function intersection ( Set $ that ) { $ intersection = $ this -> cloneEmpty ( ) ; $ this -> addIf ( $ intersection , $ this , [ $ that , 'has' ] ) ; return $ intersection ; }
Creates a new set that contains the items that are in current set that
are also contained in the provided set.

Formally:
A ∩ B = {x : x ∈ A ∧ x ∈ B}

@param Set $that
@return Set
Creates a new set that contains the items that are in current set that are also contained in the provided set .