public function getPhpSafeDefaultValue()
    {
        $value     = $this->getDefaultValue();
        $is_string = $this->hasType() && $this->getType()->getName() === 'string';

        if ($value === true) {
            return 'true';
        } elseif ($value === false) {
            return 'false';
        } elseif ($this->isDefaultValueConstant()) {
            if (strpos($this->getDefaultValueConstantName(), 'self') === 0) {
                return $this->getDefaultValueConstantName();
            }
            return '\\' . $this->getDefaultValueConstantName();
        } elseif (is_array($value)) {
            return '[]';
        } elseif (null === $value || ($is_string && $value === 'null' && $this->allowsNull())) {
            return 'null';
        } elseif (is_numeric($value) && !$is_string) {
            return (string) $value;
        }
        return var_export($value, true);
    }