## Can PHP Functions Be Both Recursive and Anonymous?

Susan Sarandon
Release: 2024-10-26 02:08:28
Original
325 people have browsed it

## Can PHP Functions Be Both Recursive and Anonymous?

Implementing Anonymous Recursive Functions in PHP

When embarking on the task of crafting recursive functions in PHP, one might aspire to shroud them with anonymity. However, a pitfall presents itself when attempting to pass the function name as an argument to itself, as demonstrated in the code below.

<code class="php">$factorial = function( $n ) use ( $factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>
Copy after login

This endeavor will prove futile, leaving you with a lingering question: can PHP functions be both recursive and anonymous?

The answer lies in understanding the mechanics of variable referencing. To establish a recursive connection, the function must hold a reference to itself. This can be achieved by passing the function as a reference using the '&' operator. Below is an example of how this modification can unblock the anonymous recursion:

<code class="php">$factorial = function( $n ) use ( &$factorial ) {
    if( $n == 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};
print $factorial( 5 );</code>
Copy after login

With this adjustment in place, the PHP function transcends the boundaries of anonymity and seamlessly wields its recursive powers.

The above is the detailed content of ## Can PHP Functions Be Both Recursive and Anonymous?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!