问题
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!
回答1:
Is there a good reason as to why we're checking to see if display_errors is false before we set it to true?
It's an example. No, there is no deeper reason. Overriding "true" with "true" also is valid.
Surely it would be faster to no bother checking and just set it to true if that was our intention?
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 enable display_errors
on a live system!
回答2:
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 than get_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.
来源:https://stackoverflow.com/questions/11596779/php-ini-set-php-net-manual-display-errors-example-explanation