ReflectionClass::isAbstract

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isAbstractComprueba si la clase es abstracta

Descripción

public ReflectionClass::isAbstract(): bool

Comprueba si la clase es o no abstracta.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de ReflectionClass::isAbstract()

<?php
class ClaseDePrueba { }
abstract class
ClaseAbstractaDePrueba { }

$claseDePrueba = new ReflectionClass('ClaseDePrueba');
$claseAbstracta = new ReflectionClass('ClaseAbstractaDePrueba');

var_dump($claseDePrueba->isAbstract());
var_dump($claseAbstracta->isAbstract());
?>

El resultado del ejemplo sería:

bool(false)
bool(true)

Ver también

add a note

User Contributed Notes 2 notes

up
3
baptiste at pillot dot fr
8 years ago
For interfaces and traits :<?phpinterface TestInterface { }trait     TestTrait { }$interfaceClass = new ReflectionClass('TestInterface');$traitClass     = new ReflectionClass('TestTrait');var_dump($interfaceClass->isAbstract());var_dump($traitClass->isAbstract());?>Using PHP versions 5.4- to 5.6, the above example will output:bool(false)bool(true)Using PHP versions 7.0+, the above example will output:bool(false)bool(false)
up
0
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.<?phptrait 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.<?phpinterface 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.
To Top