PHP.mk документација

uopz_flags

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.uopz-flags.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.uopz-flags.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
uopz_flags

Референца за `function.uopz-flags.php` со подобрена типографија и навигација.

function.uopz-flags.php

uopz_flags

(PECL uopz 2 >= 2.0.2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_flags(PECL uopz 2 >= 2.0.2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

= NULL

uopz_flags(string $function, int $flags Земи или постави знамиња на функција или класа): int
uopz_flags(string $class, string $function, int $flags Земи или постави знамиња на функција или класа): int

= PHP_INT_MAX

Параметри

class

Земи или постави ги знамињата на записот за класа или функција во време на извршување

function

Име на класа class Име на функцијата. Ако function, uopz_flags() е дадено и се помине празен стринг како

flags

ги зема или поставува знамињата на записот за класа. uopz_flags() Валиден сет на ZEND_ACC_ знамиња. Ако е изоставен,

Вратени вредности

се однесува како гетер.

Errors/Exceptions

Ако поставувате, враќа стари знамиња, инаку враќа знамиња flags се помине, uopz_flags() фрла RuntimeExceptionФункцијата откажува и издава OPcache Имплементира интерфејс во време на извршување class Од PHP 7.4.0, ако параметарот function е овозможено, и записот на класата на

Дневник на промени

Верзија = NULL
или записот за функција на На flags PECL uopz 5.0.0 ZEND_ACC_FETCH параметарот сега е опционален. Претходно, uopz_flags() мораше да се помине за да се користи

Примери

Пример #1 uopz_flags() example

<?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));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

bool(false)
bool(false)
int(1234567890)
bool(true)
bool(true)

како гетер.

<?php
final class MyClass
{
}

$flags = uopz_flags(MyClass::class, '');
uopz_flags(MyClass::class, '', $flags & ~ZEND_ACC_FINAL);
var_dump((new ReflectionClass(MyClass::class))->isFinal());
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

bool(false)

Белешки од корисници 2 забелешки

Tr909 at com dot nospam dot bigfoot
пред 7 години
If the method name is set to an empty string, then the flags for the CLASS itself will be affected, instead of an individual method. This can be used to remove the "final" attribute from a class.
<?php
declare(strict_types=1);

final class MyClass { function mymethod() {} };
uopz_flags(MyClass::class, '', 0);
?>

Note: Although not documented, setting the method to NULL will also target the CLASS flags, however, that syntax will clash with strict types because of the developer's improper function signature.
Tr909 at com dot nospam dot bigfoot
пред 5 години
To clarify the above hint: 
"...the class entry of class or the function entry of function is immutable"

Neither PHP class or function definitions have any "immutable" keyword - so this note is confusing, as it implies that a PHP programmer has any control over this. In reality, the "immutable" state mentioned is an internally-controlled optimization/shared memory feature of OPcache.

Consequently, if one has a need to set (alter) the flags of a PHP class or function by means of "uopz_flags()", then it is necessary to EXCLUDE the PHP script of the referenced class or function from OPcache, using the "opcache.blacklist_filename" INI parameter.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.