visibility & \ReflectionClassConstant::IS_PUBLIC) !== 0; } public function isProtected(): bool { return ($this->visibility & \ReflectionClassConstant::IS_PROTECTED) !== 0; } public function isPrivate(): bool { return ($this->visibility & \ReflectionClassConstant::IS_PRIVATE) !== 0; } public function getVisibilityString(): string { if ($this->isPublic()) { return 'public'; } if ($this->isProtected()) { return 'protected'; } if ($this->isPrivate()) { return 'private'; } return 'unknown'; } }