runkit_constant_remove

(PECL runkit >= 0.7.0)

runkit_constant_remove Удаляет уже определенную константу.

Описание

runkit_constant_remove ( string $constname ) : bool

Список параметров

constname

Имя удаляемой константы. Имя глобальной константы или выражение classname::constname для удаления локальной константы из класса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit_constant_add() - Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
  • runkit_constant_redefine() - Переназначить уже определенную константу.

add a note add a note

User Contributed Notes 1 note

up
4
vladimir at bashkirtsev dot com
10 years ago
At least under PHP 5.5.18 use of this function followed by constant redefinition like:

runkit_constant_remove("CONSTANT");
define("CONSTANT", "value");

may cause the constant to go into inconsistent state: from run-to-run var_dump(CONSTANT); may return NULL while $s = CONSTANT;  will cause "Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 1714381161 bytes)" (note that 1G of memory configured and it is still not enough). On some runs code behaves as expected.

I believe runkit doing some low level manipulation with pointers and perhaps it is just some form of bug. Just stay wary: fiddling around with PHP on low level likely to cause unexpected results.
To Top