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

Претходно дефинирани константи

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

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

Референца за `errorfunc.constants.php` со подобрена типографија и навигација.

errorfunc.constants.php

Претходно дефинирани константи

Постојаните подолу се секогаш достапни како дел од основната PHP.

Следните константи (или соодветната нумеричка вредност или нивното симболично име) се користат како битна маска за да се специфицира кои грешки да се пријават. Можно е да се користи бинарни оператори за комбинирање на овие вредности или маскирање на одредени типови грешки.

Совети

Името на константите може да се користи во рамките на php.ini, наместо суровите нумерички вредности на кои тие одговараат. Сепак, само |, ~, ^, !, & операторите се разбрани во рамките на php.ini.

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Не е можно да се користат симболичните имиња надвор од PHP. На пример, во httpd.conf мора да се користи пресметаната вредност на битна маска.

E_ERROR (int)
Фатални грешки при извршување. Овие укажуваат на грешки од кои не може да се опорави, како што е проблем со распределбата на меморијата. Извршувањето на скриптата се прекинува. Вредност на константата: 1
E_WARNING (int)
Предупредувања при извршување (нефатални грешки). Извршувањето на скриптата не се прекинува. Вредност на константата: 2
E_PARSE (int)
Грешки при парсирање при компилација. Грешките при парсирање треба да се генерираат само од парсерот. Вредност на константата: 4
E_NOTICE (int)
Известувања при извршување. Укажуваат дека скриптата наишла на нешто што може да укажува на грешка, но исто така може да се случи и во нормалниот тек на извршување на скриптата. Вредност на константата: 8
E_CORE_ERROR (int)
Фатални грешки што се случуваат за време на почетното стартување на PHP. Ова е слично на E_ERROR, освен што се генерира од основната PHP. Вредност на константата: 16
E_CORE_WARNING (int)
Предупредувања (нефатални грешки) што се случуваат за време на почетното стартување на PHP. Ова е слично на E_WARNING, освен што се генерира од основната PHP. Вредност на константата: 32
E_COMPILE_ERROR (int)
Фатални грешки при компилација. Ова е слично на E_ERROR, освен што се генерира од Zend Scripting Engine. Вредност на константата: 64
E_COMPILE_WARNING (int)
Предупредувања при компилација (нефатални грешки). Ова е слично на E_WARNING, освен што се генерира од Zend Scripting Engine. Вредност на константата: 128
E_DEPRECATED (int)
Известувања за отфрлање при извршување. Овозможете го ова за да добивате предупредувања за код што нема да работи во идните верзии. Вредност на константата: 8192
E_USER_ERROR (int)
Порака за грешка генерирана од корисникот. Ова е како E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). Вредност на константата: 256
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Употребата на овој констант со trigger_error() е застарена од PHP 8.4.0. Се препорачува или throw an Исклучок или повикај exit() instead.

E_USER_WARNING (int)
Порака за предупредување генерирана од корисникот. Ова е како E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). Вредност на константата: 512
E_USER_NOTICE (int)
Порака за известување генерирана од корисникот. Ова е како E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). Вредност на константата: 1024
E_USER_DEPRECATED (int)
Порака за застареност генерирана од корисникот. Ова е како E_DEPRECATED, except it is generated in PHP code by using the PHP function trigger_error(). Вредност на константата: 16384
E_STRICT (int)
Предлози за време на извршување што ги емитува PHP за извршениот код за да се обезбеди компатибилност со идните верзии. Вредност на константата: 2048
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Ова ниво на грешка не се користи и е застарено од PHP 8.4.0.

E_RECOVERABLE_ERROR (int)
Наследни „исклучоци“ од моторот што одговараат на фатална грешка што може да се фати. Слично на Грешка , но мора да се фати преку кориснички дефиниран ракувач со грешки (види set_error_handler()). Ако не се ракува, ова се однесува како E_ERROR. Вредност на константата: 4096

Забелешка: Ова ниво на грешка е ефективно неискористено, единствениот случај кога ова може да се случи е при толкување на object како bool се откажува. Ова може да се случи само за внатрешни објекти. Најчестиот пример, пред PHP 8.4.0, е користење на GMP инстанца во услов.

E_ALL (int)
Бит-маска што содржи секоја грешка, предупредување и известување. Вредност на константата: 30719
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Пред PHP 8.4, вредноста на константата беше: 32767

Белешки од корисници 8 белешки

Енди во Azurite (co uk)
пред 14 години
-1 is also semantically meaningless as a bit field, and only works in 2s-complement numeric representations.  On a 1s-complement system -1 would not set E_ERROR.  On a sign-magnitude system -1 would set nothing at all! (see e.g. http://en.wikipedia.org/wiki/Ones%27_complement)

If you want to set all bits, ~0 is the correct way to do it.

But setting undefined bits could result in undefined behaviour and that means *absolutely anything* could happen :-)
cl на viazenetti dot de
пред 8 години
An other way to get all PHP errors  that are set to be reported. This code will even work, when additional error types are added in future.

<?php
$pot = 0;
foreach (array_reverse(str_split(decbin(error_reporting()))) as $bit) {
    if ($bit == 1) {
        echo array_search(pow(2, $pot), get_defined_constants(true)['Core']). "<br>\n";
    }
    $pot++;
}
?>
russthom на fivegulf dot com
пред 13 години
[Editor's note: fixed E_COMPILE_* cases that incorrectly returned E_CORE_* strings. Thanks josiebgoode.]

The following code expands on Vlad's code to show all the flags that are set.  if not set, a blank line shows.

<?php
$errLvl = error_reporting();
for ($i = 0; $i < 15;  $i++ ) {
    print FriendlyErrorType($errLvl & pow(2, $i)) . "<br>\\n"; 
}

function FriendlyErrorType($type)
{
    switch($type)
    {
        case E_ERROR: // 1 //
            return 'E_ERROR';
        case E_WARNING: // 2 //
            return 'E_WARNING';
        case E_PARSE: // 4 //
            return 'E_PARSE';
        case E_NOTICE: // 8 //
            return 'E_NOTICE';
        case E_CORE_ERROR: // 16 //
            return 'E_CORE_ERROR';
        case E_CORE_WARNING: // 32 //
            return 'E_CORE_WARNING';
        case E_COMPILE_ERROR: // 64 //
            return 'E_COMPILE_ERROR';
        case E_COMPILE_WARNING: // 128 //
            return 'E_COMPILE_WARNING';
        case E_USER_ERROR: // 256 //
            return 'E_USER_ERROR';
        case E_USER_WARNING: // 512 //
            return 'E_USER_WARNING';
        case E_USER_NOTICE: // 1024 //
            return 'E_USER_NOTICE';
        case E_STRICT: // 2048 //
            return 'E_STRICT';
        case E_RECOVERABLE_ERROR: // 4096 //
            return 'E_RECOVERABLE_ERROR';
        case E_DEPRECATED: // 8192 //
            return 'E_DEPRECATED';
        case E_USER_DEPRECATED: // 16384 //
            return 'E_USER_DEPRECATED';
    }
    return "";
}
?>
fadhilinjagi на gmail dot com
пред 4 години
A simple and neat way to get the error level from the error code. You can even customize the error level names further.

<?php
$exceptions = [
        E_ERROR => "E_ERROR",
        E_WARNING => "E_WARNING",
        E_PARSE => "E_PARSE",
        E_NOTICE => "E_NOTICE",
        E_CORE_ERROR => "E_CORE_ERROR",
        E_CORE_WARNING => "E_CORE_WARNING",
        E_COMPILE_ERROR => "E_COMPILE_ERROR",
        E_COMPILE_WARNING => "E_COMPILE_WARNING",
        E_USER_ERROR => "E_USER_ERROR",
        E_USER_WARNING => "E_USER_WARNING",
        E_USER_NOTICE => "E_USER_NOTICE",
        E_STRICT => "E_STRICT",
        E_RECOVERABLE_ERROR => "E_RECOVERABLE_ERROR",
        E_DEPRECATED => "E_DEPRECATED",
        E_USER_DEPRECATED => "E_USER_DEPRECATED",
        E_ALL => "E_ALL"
];

echo $exceptions["1"];
$code = 256;
echo $exceptions[$code];
?>

Output:  
E_ERROR
E_USER_ERROR

This will need updating when PHP updates the error level names. Otherwise, it works just fine.
bbrokman на gmail dot com
пред 6 години
A neat way to have a place in code to control error reporting configuration :)

<?php

$errorsActive = [
    E_ERROR             => FALSE,
    E_WARNING           => TRUE,
    E_PARSE             => TRUE,
    E_NOTICE            => TRUE,
    E_CORE_ERROR        => FALSE,
    E_CORE_WARNING      => FALSE,
    E_COMPILE_ERROR     => FALSE,
    E_COMPILE_WARNING   => FALSE,
    E_USER_ERROR        => TRUE,
    E_USER_WARNING      => TRUE,
    E_USER_NOTICE       => TRUE,
    E_STRICT            => FALSE,
    E_RECOVERABLE_ERROR => TRUE,
    E_DEPRECATED        => FALSE,
    E_USER_DEPRECATED   => TRUE,
    E_ALL               => FALSE,
];

error_reporting(
    array_sum(
        array_keys($errorsActive, $search = true)
    )
);

?>
kezzyhko на NOSPAM dot semysha dot ru
пред 9 години
As for me, the best way to get error name by int value is that. And it's works fine for me ;)
<?php

array_flip(array_slice(get_defined_constants(true)['Core'], 1, 15, true))[$type];

//the same in readable form
array_flip(
    array_slice(
        get_defined_constants(true)['Core'],
        1,
        15,
        true
    )
)[$type]

?>
kaioker
пред 4 години
super simple error code to human readable conversion:

function prettycode($code){
    return $code == 0 ? "FATAL" : array_search($code, get_defined_constants(true)['Core']);
}
ErikBachmann
пред 6 години
<?php
function getErrorTypeByValue($type) {
    $constants  = get_defined_constants(true);

    foreach ( $constants['Core'] as $key => $value ) { // Each Core constant
        if ( preg_match('/^E_/', $key  ) ) {    // Check error constants
            if ( $type == $value ) 
                return( "$key=$value");
        }
    }
}   // getErrorTypeByValue() 

echo "[".getErrorTypeByValue( 1 ) . "]". PHP_EOL;
echo "[".getErrorTypeByValue( 0 ) . "]". PHP_EOL;
echo "[".getErrorTypeByValue( 8 ) . "]". PHP_EOL;
?>

Will give
    [E_ERROR=1]
    []
    [E_NOTICE=8]
На оваа страница

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

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

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

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

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