uopz_flags
(PECL uopz 2 >= 2.0.2, PECL uopz 5, PECL uopz 6, PECL uopz 7)
uopz_flags — 함수 또는 클래스에 대한 플래그 가져오기 또는 설정
설명
uopz_flags(string $function
, int $flags
= PHP_INT_MAX): int
uopz_flags(string $class
, string $function
, int $flags
= PHP_INT_MAX): int
런타임 시 클래스 또는 함수 항목에 대한 플래그 가져오기 또는 설정
매개변수
class
- 클래스의 이름입니다.
function
- 함수의 이름입니다.
class
가 제공되고 빈 문자열이function
로 전달되면 uopz_flags()는 클래스 항목의 플래그를 가져오거나 설정합니다. flags
- 유효한 ZEND_ACC_ 플래그 집합입니다. 생략하면 uopz_flags()가 getter 역할을 합니다.
반환 값
설정하면 이전 플래그를 반환하고 그렇지 않으면 플래그를 반환합니다.
오류/예외
PHP 7.4.0부터 매개변수 flags
가 전달되면 OPcache가 활성화되고 class
의 클래스 항목 또는 function
의 함수 항목이 변경 불가능한 경우 uopz_flags()는 RuntimeException을 발생시킵니다.
변경 로그
Version | Description |
---|---|
PECL uopz 5.0.0 | flags 매개변수는 이제 선택 사항입니다. 이전에는 uopz_flags()를 getter로 사용하려면 ZEND_ACC_FETCH 를 전달해야 했습니다. |
Examples
예제 #1 기본 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));
?>
위의 예는 다음을 출력합니다.
bool(false) bool(false) int(1234567890) bool(true) bool(true)
예제 #2 클래스 "완료 취소"
<?php
final class MyClass
{
}
$flags = uopz_flags(MyClass::class, '');
uopz_flags(MyClass::class, '', $flags & ~ZEND_ACC_FINAL);
var_dump((new ReflectionClass(MyClass::class))->isFinal());
?>
위의 예는 다음을 출력합니다.
bool(false)