(PECL uopz 2 >= 2.0.2, PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_flags — Récupère ou défini les drapeaux d'une fonction ou d'une classe
$function, int $flags = PHP_INT_MAX): int$class, string $function, int $flags = PHP_INT_MAX): intRécupère ou défini les drapeaux d'une classe ou de l'entrée d'une fonction à l'exécution.
classLe nom de la classe
function
      Le nom de la fonction. Si class est fournie et
      que une chaîne de caractères vide est passé comme function,
      uopz_flags() récupère ou définie les drapeaux de
      l'entrée de classe.
     
flagsUn jeu valide de drapeaux ZEND_ACC_ flags. Si omit, uopz_flags() agit commt un récupérateur.
Si des drapeaux ont été définis, retourne les anciens drapeaux, sinon, retourne les drapeaux courants
   À partir de PHP 7.4.0, si le paramètre flags est
   fournie uopz_flags() émet une
   RuntimeException, si
   OPcache est activé, et l'entrée de classe
   de class ou l'entrée de fonction
   function est immutable.
  
| Version | Description | 
|---|---|
| PECL uopz 5.0.0 | Le paramètre flagsest désormait optionnel. Auparavant,ZEND_ACC_FETCHdevait être passé pour utiliser
       uopz_flags() en tant que récupérateur. | 
Exemple #1 Exemple avec uopz_flags()
<?php
class Test {
    public function method() {
        return __CLASS__;
    }
}
$flags = uopz_flags("Test", "method");
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));
var_dump(uopz_flags("Test", "method", $flags|ZEND_ACC_STATIC|ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));
?>
L'exemple ci-dessus va afficher :
bool(false) bool(false) int(1234567890) bool(true) bool(true)
Exemple #2 Transformer une Classe finale en non-finale
<?php
final class MyClass
{
}
$flags = uopz_flags(MyClass::class, '');
uopz_flags(MyClass::class, '', $flags & ~ZEND_ACC_FINAL);
var_dump((new ReflectionClass(MyClass::class))->isFinal());
?>
L'exemple ci-dessus va afficher :
bool(false)