public function freeze() /*: object*/
    {
        if (!$this->frozen) {
            $this->frozen = true;
            foreach ($this->explorableIndex as $name) {
                if ($this->{$name} instanceof FreezableInterface) {
                    $this->{$name}->freeze();
                }
            }
        }
        return $this;
    }
public function freeze() /*: object*/
    {
        if (!$this->frozen) {
            $this->frozen = true;
            foreach ($this->explorableIndex as $name) {
                if ($this->{$name} instanceof FreezableInterface) {
                    $this->{$name}->freeze();
                }
            }
        }
        return $this;
    }
public function freeze ( ) /*: object*/ { if ( ! $ this -> frozen ) { $ this -> frozen = true ; foreach ( $ this -> explorableIndex as $ name ) { if ( $ this -> { $ name } instanceof FreezableInterface ) { $ this -> { $ name } -> freeze ( ) ; } } } return $ this ; }
Make all properties read-only, unless already frozen.

Recursive, freeze()s all properties that are FreezableInterface.

Chainable.

@return $this|ExplorableFreezable
Make all properties read - only unless already frozen .