Vous pouvez obtenir la représentation de chaîne des valeurs par ini_get(), des valeurs qui display_errors
peut être réglé sur est soit, true\false
, 0\1
et On\Off
. Mais quand l'utilisateur mis leur php.ini
il est plus courant d'utiliser 1
ou On
if (ini_get('display_errors') == "1") {
// show debug info
}
ou pour vérifier TOUS cas, vous pouvez effectuer un interrupteur cas
ini_set('display_errors', 1);
switch (ini_get('display_errors')) {
case "1":
case "On":
case "true":
// show debug info
}
Si vous préférez l'égalité approche de comparaison, notez que ini_get
renvoie une valeur String
de 1
, si vous testez la valeur retournée avec ini_get
en utilisant le ==
avec la valeur int
1
, ça devient vrai. Si vous utilisez le ===
, il vérifie si les deux sont égaux et du même type. String
n'est pas du même type que int
alors il retournera false
.
1 == "1"; // in PHP, this returns true, it doesn't check the type.
1 === "1"; // would be false, this however checks the type.
En utilisant ini_get('display_errors')
vous pouvez vérifier contre des valeurs telles que, TRUE
, FALSE
et même NULL
. Ils renvoient une valeur booléenne de 0
qui correspond à false
et toute valeur autre que 0
correspond à true
.
if (2) {
echo "2 is true!"; // echos "2 is true!"
}
J'ai vu vos commentaires sur un écart alors j'ai décidé de le tester moi-même, voici ce que je
<?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
}
?>
Cette réponse est un peu long, mais j'espère que c'est ce que vous avez besoin.
Techniquement, c'est une chaîne, et certaines personnes la règlent sur 'on'. Donc, même si vous pouvez simplement vérifier si elle est égale à 1, cela ne fonctionnera pas si vous travaillez dans un environnement bizarre. Ce faisant, il n'est pas fiable. –
Trop simple. >> ini_set ('display_errors', 'On'); $ verbose = ini_get ('display_errors') == 1; << Verbose est maintenant faux, malgré le "On". –
Il est défini sur On dans php.ini mais quand vous appelez 'ini_get' il renvoie 1, que ce soit une chaîne ou un int –