Строковое представление значений можно получить с помощью ini_get () , для значений, которые могут быть установлены display_errors
, либо true\false
, 0\1
и On\Off
. Но когда пользователь устанавливает свои php.ini
, чаще используется 1
или On
if (ini_get('display_errors') == "1") {
// show debug info
}
или для проверки ВСЕХ дел, вы можете выполнить коммутационный ящик
ini_set('display_errors', 1);
switch (ini_get('display_errors')) {
case "1":
case "On":
case "true":
// show debug info
}
Если вы предпочитаете подход сравнения равенства, обратите внимание, что ini_get
возвращает значение String
1
, если вы проверяете возвращенное значение с помощью ini_get
, используя ==
со значением int
1
, это становится правдой. Если вы используете ===
, он проверяет, равны ли они и имеют ли они одинаковый тип. String
не тот же тип, что и int
, поэтому он вернет false
.
1 == "1"; // in PHP, this returns true, it doesn't check the type.
1 === "1"; // would be false, this however checks the type.
Используя ini_get('display_errors')
, вы можете проверять такие значения, как TRUE
, FALSE
и
четный NULL
. Они будут возвращать логическое значение либо 0
, равное false
, а все, кроме 0
, оценивается как true
.
if (2) {
echo "2 is true!"; // echos "2 is true!"
}
Я видел ваш комментарий о несоответствии, поэтому я решил проверить его сам, вот что я использовал
<?php
ini_set('display_errors', 1);
$verbose = ini_get('display_errors');
echo $verbose; // echo's 1
// just to test its return values.
if ($verbose) {
echo "verbose is true"; // echos "verbose is true"
}
ini_set('display_errors', 0);
$verbose = ini_get('display_errors');
echo $verbose; // echo's 0
if ($verbose) {
echo "verbose is not true"; // does not get evaluated
}
?>
Этот ответ немного длинен, но я надеюсь, что это то, что вам нужно.