A WordPress-centric search engine for devs and theme authors



wp_is_ini_value_changeable ›

Since4.6.0
Deprecatedn/a
wp_is_ini_value_changeable ( $setting )
Parameters:
  • (string) $setting The name of the ini setting to check.
    Required: Yes
Links:
Returns:
  • (bool) True if the value is changeable at runtime. False otherwise.
Defined at:
Codex:

Determines whether a PHP ini value is changeable at runtime.



Source

function wp_is_ini_value_changeable( $setting ) {
	static $ini_all;

	if ( ! isset( $ini_all ) ) {
		$ini_all = false;
		// Sometimes `ini_get_all()` is disabled via the `disable_functions` option for "security purposes".
		if ( function_exists( 'ini_get_all' ) ) {
			$ini_all = ini_get_all();
		}
	}

	// Bit operator to workaround https://bugs.php.net/bug.php?id=44936 which changes access level to 63 in PHP 5.2.6 - 5.2.17.
	if ( isset( $ini_all[ $setting ]['access'] ) && ( INI_ALL === ( $ini_all[ $setting ]['access'] & 7 ) || INI_USER === ( $ini_all[ $setting ]['access'] & 7 ) ) ) {
		return true;
	}

	// If we were unable to retrieve the details, fail gracefully to assume it's changeable.
	if ( ! is_array( $ini_all ) ) {
		return true;
	}

	return false;
}