PHP 8.5.0 Alpha 4 available for testing

Voting

: three minus two?
(Example: nine)

The Note You're Voting On

baptiste at pillot dot fr
1 year 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
trait TI { 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
interface AI {}
var_dump((new ReflectionClass(AI::class))->isAbstract());

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

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

<< Back to user notes page

To Top