WordPress logic forces `WP_DEBUG` to be defined to _something_, even if it's omitted it will be set to `false` in [`wp_initial_constants()`][1] during load.

However "background" (that is not when it is checked explicitly) function of `WP_DEBUG` is to be a flag for how PHP error reporting should be configured on runtime. That configuration is performed by [`wp_debug_mode()`][2] and at any point after that can be changed by your plugin's code if necessary.


  [1]: http://codex.wordpress.org/Function_Reference/wp_initial_constants
  [2]: https://developer.wordpress.org/reference/functions/wp_debug_mode/