Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие опкоды определяются как константы с помощью uopz:

ZEND_EXIT (integer)
Вызывается с помощью exit() and die(), не принимает аргументов. Возвращает логический TRUE для выхода, FALSE для продолжения
ZEND_NEW (integer)
Вызывается конструкцией объекта, получает класс создаваемого объекта в качестве единственного аргумента
ZEND_THROW (integer)
Вызывается конструкцией throw, получает класс выбрасываемого исключения в качестве единственного аргумента
ZEND_FETCH_CLASS (integer)
Вызывается во время композиции, получает имя получаемого в качестве единственного аргумента
ZEND_ADD_TRAIT (integer)
Вызывается во время композиции, получает класс добавляемого трейта первым аргументом, и имя трейта в качестве второго аргумента
ZEND_ADD_INTERFACE (integer)
Вызывается во время композиции, получает класс добавляемого интерфейса первым аргументом, и имя интерфейса в качестве второго аргумента
ZEND_INSTANCEOF (integer)
Вызывается оператором instanceof, получает проверяемый объект первым аргументом и имя класса, который должен быть в объекте в качестве второго аргумента

Следующие константы управляют поведением виртуальной машины после вызова обработчика пользователя, будьте предельно осторожны!

ZEND_USER_OPCODE_CONTINUE (integer)
Продвинуть 1 опкод и продолжить
ZEND_USER_OPCODE_ENTER (integer)
Ввести новый new op_array без рекурсии
ZEND_USER_OPCODE_LEAVE (integer)
Вернуть вызывающий op_array внутри того же исполнителя
ZEND_USER_OPCODE_DISPATCH (integer)
Отправить в исходный обработчик опкода
ZEND_USER_OPCODE_DISPATCH_TO (integer)
Отправить на конкретный обработчик (посредством бинарного OR с константой опкода ZEND)
ZEND_USER_OPCODE_RETURN (integer)
Выйти из исполнителя (возврат из функции)

Следующие модификаторы регистрируются как константы uopz

ZEND_ACC_PUBLIC (integer)
Отметить функцию как общедоступную, по умолчанию
ZEND_ACC_PROTECTED (integer)
Отметить функцию как защищенную
ZEND_ACC_PRIVATE (integer)
Отметить функцию как закрытую
ZEND_ACC_STATIC (integer)
Отметить функцию как статическую
ZEND_ACC_FINAL (integer)
Отметить функцию как окончательную
ZEND_ACC_ABSTRACT (integer)
Отметить функцию как абстрактную
ZEND_ACC_CLASS (integer)
Фиктивная регистрация для согласованности, запись класса по умолчанию
ZEND_ACC_INTERFACE (integer)
Отметить класс как интерфейс
ZEND_ACC_TRAIT (integer)
Отметить класс как трейт
ZEND_ACC_FETCH (integer)
Используется только для получения флагов

add a note add a note

User Contributed Notes 1 note

up
1
ASchmidt at Anamera dot net
7 months ago
At least with uops 5.02 and PHP 7.2 (Win64), the constant ZEND_ACC_FETCH is not defined - while others are.

You can use:

if ( !defined( 'ZEND_ACC_FETCH' ) )
    define( 'ZEND_ACC_FETCH', PHP_INT_MAX );
To Top