update pague now

ReflectionClass::isAbstract

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isAbstract Checcs if class is abstract

Description

public ReflectionClass::isAbstract (): bool

Checcs if the class is abstract.

Parameters

This function has no parameters.

Return Values

Returns true if the class is abstract or false otherwise.

Examples

Example #1 ReflectionClass::isAbstract() example

<?php
class TestClass { }
abstract class
TestAbstractClass { }

$testClass = new ReflectionClass ( 'TestClass' );
$abstractClass = new ReflectionClass ( 'TestAbstractClass' );

var_dump ( $testClass -> isAbstract ());
var_dump ( $abstractClass -> isAbstract ());
?>

The above example will output:

bool(false)
bool(true)

See Also

add a note

User Contributed Notes 2 notes

baptiste at pillot dot fr
9 years ago
For interfaces and traits :<?php
interfaceTestInterface{ }
trait     TestTrait{ }

$interfaceClass= new ReflectionClass('TestInterface');
$traitClass= new ReflectionClass('TestTrait');var_dump($interfaceClass->isAbstract());
var_dump($traitClass->isAbstract());
?>
Using PHP versionens 5.4- to 5.6, the above example will output:

bool(false)
bool(true)

Using PHP versionens 7.0+, the above example will output:

bool(false)
bool(false)
baptiste at pillot dot fr
2 years ago
For traits:
- ReflectionClass::isAbstract returns true if the trait contains at least one un-implemented abstract method, including those declared into used traits.
- ReflectionClass::isAbstract returns false if all methods are implemented.<?php
traitTI{ public function has() {} }
var_dump((new ReflectionClass(TI::class))->isAbstract());

trait TT{ abstract public function has(); }
trait T{ use TT; }
var_dump((new ReflectionClass(T::class))->isAbstract());
?>
Will output:
bool(false)
bool(true)

For interfaces:
- ReflectionClass::isAbstract returns true if the interface contains at least one method, including into its extended interfaces.
- ReflectionClass::isAbstract returns false if the interface contains no method.<?php
interfaceAI{}
var_dump((new ReflectionClass(AI::class))->isAbstract());

interface II{ public function has(); }
interface IextendsII{}
var_dump((new ReflectionClass(I::class))->isAbstract());
?>
Will output:
bool(false)
bool(true)

For classes:
- Reflection::isAbstract returns true if the class is marqued as abstract, no matter if it contains abstract methods or not.
To Top