WordPress/wp-includes/php-compat/readonly.php
Sergey Biryukov 52da9fb6af Code Modernization: Rename the readonly() function to wp_readonly().
Since PHP 8.1, `readonly` is a reserved keyword and cannot be used as a function name.

In order to avoid PHP parser errors, the `readonly()` function was extracted to a separate file and is now only included conditionally on PHP < 8.1.

This commit also:
* Moves the tests for the `__checked_selected_helper()` function and all the related functions to their own file.
* Switches to named data providers. This makes the output when using the `--testdox` option more descriptive and is helpful when trying to debug which data set from a data provider failed the test.
* Improves the tests in question to make them feature-complete and expand test coverage.

Props jrf, ayeshrajans, haosun, knutsp, swissspidy, SergeyBiryukov.
Fixes #53858.
Built from https://develop.svn.wordpress.org/trunk@51586


git-svn-id: http://core.svn.wordpress.org/trunk@51197 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-08-09 17:21:00 +00:00

36 lines
1.1 KiB
PHP

<?php
/**
* Conditionally declares a `readonly()` function, which was renamed
* to `wp_readonly()` in WordPress 5.9.0.
*
* In order to avoid PHP parser errors, this function was extracted
* to this separate file and is only included conditionally on PHP 8.1.
*
* Including this file on PHP >= 8.1 results in a fatal error.
*
* @package WordPress
* @since 5.9.0
*/
/**
* Outputs the HTML readonly attribute.
*
* Compares the first two arguments and if identical marks as readonly
*
* This function is deprecated, and cannot be used on PHP >= 8.1.
*
* @since 4.9.0
* @deprecated 5.9.0 Use `wp_readonly` introduced in 5.9.0.
*
* @see wp_readonly()
*
* @param mixed $readonly One of the values to compare
* @param mixed $current (true) The other value to compare if not just true
* @param bool $echo Whether to echo or just return the string
* @return string HTML attribute or empty string
*/
function readonly( $readonly, $current = true, $echo = true ) {
_deprecated_function( __FUNCTION__, '5.9.0', 'wp_readonly()' );
return wp_readonly( $readonly, $current, $echo );
}