While $php_errormsg is a global, it is not a superglobal.
You'll have to qualify it with a global keyword inside a function.
<?php
function checkErrormsg()
{
global $php_errormsg;
@strpos();
return $php_errormsg;
}
?>
(PHP 4, PHP 5, PHP 7)
$php_errormsg — Le dernier message d'erreur
Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0. Dépendre de cette fonctionnalité est fortement déconseillé.
Utilisez error_get_last() plutôt.
$php_errormsg est une variable qui contient le texte de la dernière erreur générée par PHP. Cette variable sera uniquement accessible dans le même contexte d'exécution que celui de la ligne qui a généré l'erreur, et uniquement si la directive de configuration track_errors est activée (elle est désactivée par défaut).
Si un gestionnaire d'erreurs définit par l'utilisateur est actif
(set_error_handler()), $php_errormsg ne sera
définit que si le gestionnaire d'erreur retourne false
.
Version | Description |
---|---|
8.0.0 | La directive track_errors qui cause $php_errormsg à être disponible à été supprimée. |
7.2.0 | La directive track_errors qui cause $php_errormsg à être disponible à été rendue obsolète. |
Exemple #1 Exemple avec $php_errormsg
<?php
@strpos();
echo $php_errormsg;
?>
Résultat de l'exemple ci-dessus est similaire à :
Wrong parameter count for strpos()
While $php_errormsg is a global, it is not a superglobal.
You'll have to qualify it with a global keyword inside a function.
<?php
function checkErrormsg()
{
global $php_errormsg;
@strpos();
return $php_errormsg;
}
?>
Note: This variable doesn't seem to get populated if you're running Xdebug.
The track_errors parameter is PHP_INI_ALL, so you can use code like this:
<?php
ini_set('track_errors', 1);
$result = @do_risky_thing();
if (! $result) {
echo '<p>Error' . htmlspecialchars($php_errormsg) . '</p>';
}
ini_set('track_errors', 0);
?>
$php_errormsg does not contain the error message generated inside a function. See the example below:
<?php
@strpos();
function checkErrormsg()
{
global $php_errormsg;
echo "First Error is: $php_errormsg <br />";
@ini_set();
echo "Error is: $php_errormsg";
}
checkErrormsg();
?>
This will output:
First Error is: strpos() expects at least 2 parameters, 0 given
Error is: strpos() expects at least 2 parameters, 0 given