Code Modernisation: Introduce the spread operator in Walker::walk() and ::paged_walk().

Rather than relying on `func_get_args()` to retrieve arbitrary function arguments, we can now use the spread operator to assign them directly to a variable.

This re-applies [45624] and reverts [45640], with a dev note upcoming for plugin authors to maintain backward compatibility with old versions of WordPress.

Props jrf.
See #47678.

git-svn-id: https://develop.svn.wordpress.org/trunk@46442 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2019-10-08 17:54:45 +00:00
parent 0a818ec0fc
commit 5f2352599f

View File

@ -180,10 +180,10 @@ class Walker {
*
* @param array $elements An array of elements.
* @param int $max_depth The maximum hierarchical depth.
* @param mixed ...$args Optional additional arguments.
* @return string The hierarchical item output.
*/
public function walk( $elements, $max_depth ) {
$args = array_slice( func_get_args(), 2 );
public function walk( $elements, $max_depth, ...$args ) {
$output = '';
//invalid parameter or nothing to walk
@ -272,16 +272,16 @@ class Walker {
*
* @param array $elements
* @param int $max_depth The maximum hierarchical depth.
* @param int $page_num The specific page number, beginning with 1.
* @param int $page_num The specific page number, beginning with 1.
* @param int $per_page
* @param mixed ...$args Optional additional arguments.
* @return string XHTML of the specified page of elements
*/
public function paged_walk( $elements, $max_depth, $page_num, $per_page ) {
public function paged_walk( $elements, $max_depth, $page_num, $per_page, ...$args ) {
if ( empty( $elements ) || $max_depth < -1 ) {
return '';
}
$args = array_slice( func_get_args(), 4 );
$output = '';
$parent_field = $this->db_fields['parent'];