Reading php.net's example of setting display_errors
with ini_set
:
<?php
echo ini_get('display_errors');
if (!ini_get('display_errors')) {
ini_set('display_errors', '1');
}
echo ini_get('display_errors');
?>
Is there a good reason as to why we're checking to see if display_errors
is false before we set it to true? Surely it would be faster to not bother checking and just set it to true if that was our intention?
I would be really appreciative if someone could enlighten me on this; as should I be doing something similar with error_reporting(-1);
too?
Thank you all!
Well, I did a quick test on my localhost, which actually seemed to indicate that if
display_errors
is already set, then it's actually faster to check if it's already set, than to just set it.It's fairly trivial as I had to run a loop a million times to really notice a difference, and even then it's not much (about 10%), but it does seem to be there. I guess this would indicate that
set_ini
is doing a bit more work thanget_ini
.Perhaps others can confirm?
I guess in practice this is pretty useless, as you'd not really want
display_errors
set to true on a live site, so micro-performance optimisation isn't so much of a concern.Other than that, can't think of a reason as to why you'd want to check up front.
It's an example. No, there is no deeper reason. Overriding "true" with "true" also is valid.
I guess you would rarely feel any difference, wether you check it first, or not.
However: You should use
php.ini
for this and more important: Never enabledisplay_errors
on a live system!