


Unexpected output of PHP recursive function: Why does a simple addition function print '85' instead of '8'?
Apr 01, 2025 am 06:12 AMDetailed explanation of PHP recursive function: analyzing the unexpected output of the addition function
This article analyzes an example of a PHP recursive function to explain why its output results do not match expectations. The code is as follows:
<?php function sd($a=3,$b=2){ $c = $a $b; if($c < 6){ sd($a,$c); } echo $c; } sd(); ?>
The function sd()
accepts two parameters a
and b
, and the default values ??are 3 and 2 respectively. The function calculates the sum of a
and b
and assigns the value to c
. If c
is less than 6, then recursively call itself and pass a
and the new c
values ??as parameters. Finally, the function prints the value of c
.
After executing sd()
, the output result is "85", rather than the expected "8". This is because there is a bias in understanding the order of recursive calls and echo
statement execution.
The program execution process is as follows:
- The first call to
sd()
is called,a=3
,b=2
,c = 3 2 = 5
. Sincec , the function calls itself recursively and the parameters become <code>sd(3, 5)
. - In recursive calls,
a=3
,b=5
,c = 3 5 = 8
. At this timec >= 6
, the recursion ends.echo $c;
print 8. - The program returns to the location where the first call
sd()
is called.echo $c;
prints thec
value at the first call, which is 5.
Therefore, the final output is "85". It is not that the variable c
is not overwritten, but that the echo
statement is at the end of the function and is executed every time the recursive ends, resulting in two prints.
To get the result "8", you need to modify the function logic, such as placing the echo
statement in if
conditional statement, or printing the final result only at the end of recursion. The modified code can be as follows:
<?php function sd($a=3,$b=2){ $c = $a $b; if($c < 6){ return sd($a,$c); } return $c; } echo sd(); ?>
This modified version uses the return
statement to return the value of c
, ensuring that the final result is printed only after the recursion is over.
The above is the detailed content of Unexpected output of PHP recursive function: Why does a simple addition function print '85' instead of '8'?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

?In today's increasingly popular digital asset trading, it is particularly important to understand how to safely and effectively withdraw your digital assets. As a world-renowned digital asset trading platform, ok exchange provides convenient currency withdrawal services. This tutorial will analyze in detail the steps of withdrawing coins on the ok exchange, things to note, and some common questions and answers to help users complete asset transfer smoothly and ensure asset security. Whether you are using ok exchange for withdrawals for the first time or want to further understand the withdrawal process, this article will provide you with clear and practical guidance.

Grayscale Digital Market refers to the overall performance of Grayscale Investment’s digital asset trust funds, and its core includes single asset trusts and compound funds. 1. "Grayscale" refers to Grayscale Investments, which has trust products such as GBTC and ETHE; 2. "Digital Market" refers to GDLC funds that track mainstream crypto assets in a narrow sense, and covers the overall performance of all trust products in Grayscale. Reasons to pay attention to the Grayscale Digital Market include: 1. Changes in its holdings reflect institutional investors' tendency to allocate cryptocurrencies; 2. Premium or discount fluctuations in trust products affect market sentiment; 3. As a compliance channel regulated by SEC, its trends have policy reference value.

The core of AAVE's ability to continue to lead the DeFi lending market lies in its comprehensive advantages such as technological iteration, innovative functions, security risk control, multi-chain strategy, and decentralized governance. 1. Technically, it continues to upgrade from V1 to V3 to achieve cross-chain lending and risk isolation; 2. Launch lightning loans, issue GHO stablecoins and lay out RWA real-world assets; 3. Ensure platform security through risk reserves, dynamic interest rates and governance audits; 4. Multi-chain deployment improves capital efficiency and liquidity network effects; 5. Transparent community governance, enhancing user trust and participation.

As the market conditions pick up, more and more smart investors have begun to quietly increase their positions in the currency circle. Many people are wondering what makes them take decisively when most people wait and see? This article will analyze current trends through on-chain data to help readers understand the logic of smart funds, so as to better grasp the next round of potential wealth growth opportunities.

Dogecoin, a unique existence in the cryptocurrency world, is often called "meme coin". Unlike many cryptocurrencies that pursue cutting-edge technology or solve practical problems, the origin and development of Dogecoin is closely linked to a specific Internet cultural phenomenon - that is "meme". Its birth itself is full of jokes and casualness, which sets the tone of light humor for its subsequent development. This unconventional beginning gives Dogecoin a unique, non-serious halo from the beginning.

Explore how Maxwell Hardfork can reshape BNB chains by shortening block time and improving performance, helping it make its mark in the DeFi field. BNB chain has caused a stir with its latest upgrade - Maxwell Hardfork. This is not an ordinary update, but a major leap, aiming to completely improve the user experience and open up new possibilities for developers. Let's dive into why this upgrade is so eye-catching. What is a Maxwell hard fork? Maxwell Hardfork is a disruptive change in the BNB chain. The upgrade cuts the block time to just 0.75 seconds, meaning nearly instant transaction confirmation, smoother DeFi settlement and a virtually no latency interactive experience in gaming DApps.

Recently, multiple currencies in the cryptocurrency market have soared. Notcoin (NOT), Pepe (PEPE), Brett (BRETT), Render (RNDR), and Ondo (ONDO) have achieved significant increases due to social blockchain, community consensus, Base chain ecology, AI computing power demand, institutional entry and other factors; its upward logic includes strong narrative support, low market value and high volatility, exchange online effect, and community and celebrity influence; the surge in coins drives funds to flow to altcoins, the rise of new public chains, the accelerated layout of institutions and the intensification of retail FOMO sentiment; ordinary people should pay attention to strong tracks, ambush potential coins, and use new effects, while being wary of high volatility risks, Rug Pull and out of control of positions.

Bitcoin is a decentralized digital currency whose issuance mechanism is designed to have strict upper limits. This design ensures that the total amount of Bitcoin is limited, about 21 million. New Bitcoins are generated through the “mining” process where miners verify transactions and package them into the blockchain by solving complex computing problems. As a reward, the miners will receive a certain amount of new Bitcoins as well as transaction fees. This block reward is one of the important sources of Bitcoin supply.
