Class
PHP Class Function
Categories:
property_exists()
property_exists(
object|string $object_or_class
,string $property
):bool
Checks if the object or class has a property
class MyClass {
public $public_variable;
private $private_variable;
static protected $static_protected_variable;
}
var_dump(property_exists(MyClass::class, 'public_variable')); // true
var_dump(property_exists(new MyClass, 'public_variable')); // true
var_dump(property_exists(MyClass::class, 'private_variable')); // true
var_dump(property_exists(MyClass::class, 'not_exist_variable')); // false
var_dump(property_exists(MyClass::class, 'static_protected_variable')); // true
method_exists()
method_exists(
object|string $object_or_class
,string $method
):bool
Checks if the class method exists
class MyClass {
public function exist_method() {
}
}
var_dump(method_exists(MyClass::class,'exist_method')); // true
var_dump(method_exists(MyClass::class,'not_exist_method')); // false
is_a()
is_a(
mixed $object_or_class
,string $class
,bool $allow_string = false
):bool
Checks if the object is of this object type or has this object type as one of its parents
class MyClass {
}
$MyClass = new MyClass;
var_dump(is_a($MyClass, MyClass::class)); // true
get_class()
get_class(
object $object = ?
):string
Returns the name of the class of an object
class MyClass {
}
$MyClass = new MyClass;
var_dump(get_class($MyClass)); // MyClass
ReflectionClass
The ReflectionClass class reports information about a class
.
$CustomClassInformation = new ReflectionClass('CustomClass');
$CustomClassInformation->getStaticProperties();
class ReflectionClass implements Reflector {
/* Constants */
const int IS_IMPLICIT_ABSTRACT = 16;
const int IS_EXPLICIT_ABSTRACT = 32;
const int IS_FINAL = 64;
/* Properties */
public string $name;
/* Methods */
public __construct(object|string $objectOrClass)
public static export(mixed $argument, bool $return = false): string
public getAttributes(?string $name = null, int $flags = 0): array
public getConstant(string $name): mixed
public getConstants(?int $filter = null): array
public getConstructor(): ?ReflectionMethod
public getDefaultProperties(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public getExtensionName(): string|false
public getFileName(): string|false
public getInterfaceNames(): array
public getInterfaces(): array
public getMethod(string $name): ReflectionMethod
public getMethods(?int $filter = null): array
public getModifiers(): int
public getName(): string
public getNamespaceName(): string
public getParentClass(): ReflectionClass|false
public getProperties(?int $filter = null): array
public getProperty(string $name): ReflectionProperty
public getReflectionConstant(string $name): ReflectionClassConstant|false
public getReflectionConstants(?int $filter = null): array
public getShortName(): string
public getStartLine(): int|false
public getStaticProperties(): ?array
public getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public getTraitAliases(): array
public getTraitNames(): array
public getTraits(): array
public hasConstant(string $name): bool
public hasMethod(string $name): bool
public hasProperty(string $name): bool
public implementsInterface(ReflectionClass|string $interface): bool
public inNamespace(): bool
public isAbstract(): bool
public isAnonymous(): bool
public isCloneable(): bool
public isEnum(): bool
public isFinal(): bool
public isInstance(object $object): bool
public isInstantiable(): bool
public isInterface(): bool
public isInternal(): bool
public isIterable(): bool
public isSubclassOf(ReflectionClass|string $class): bool
public isTrait(): bool
public isUserDefined(): bool
public newInstance(mixed ...$args): object
public newInstanceArgs(array $args = []): ?object
public newInstanceWithoutConstructor(): object
public setStaticPropertyValue(string $name, mixed $value): void
public __toString(): string
}
ReflectionClass::newInstanceArgs()
public ReflectionClass::newInstanceArgs(
array $args = []
):?object
Pass arguments from array in php to constructor
class MyClass {
}
$MyClassReflector = new ReflectionClass(MyClass::class);
$MyClass = $MyClassReflector->newInstanceArgs(array('foo', 'bar'));
ReflectionClass::getStaticProperties()
public ReflectionClass::getStaticProperties():
?array
class MyClass {
public static $STATUS_NORMAL = 'normal';
protected static $CODE_ERROR = 'err';
private static $LEVEL_HIGH = 'high';
}
$MyClassReflector = new ReflectionClass(MyClass::class);
$static_properties_list = $MyClassReflector->getStaticProperties();
print_r($static_properties_list);
// Array
// (
// [STATUS_NORMAL] => normal
// [CODE_ERROR] => err
// [LEVEL_HIGH] => high
// )
Reference
- PHP: ReflectionClassConstant - Manual
- Pass arguments from array in php to constructor - Stack Overflow