递归优化php,PHP优化尾递归?

这里是生成的操作码(对不起的奇怪的表示):

Global

-------------------------------------------------------------------------------

BCDCAC 0003: NOP ()

BCDD24 0012: SEND_VAL (CONST: "500000")

BCDD9C 0012: SEND_VAL (CONST: NULL)

BCDE14 0012: DO_FCALL (CONST: "sumrand") -> VAR 0

BCDE8C 0012: CONCAT (VAR 0, CONST: "\n") -> TMP_VAR 1

BCDF04 0012: ECHO (TMP_VAR 1)

BCDF7C 0014: RETURN (CONST: "1")

Functions

-------------------------------------------------------------------------------

sumrand (17 op)

BCFABC 0003: RECV (CONST: "1") -> CV 0 ($n)

BCFB34 0003: RECV (CONST: "2") -> CV 1 ($sum)

BCFBAC 0004: IS_EQUAL (CV 0 ($n), CONST: NULL) -> TMP_VAR 0

BCFC24 0004: JMPZ (TMP_VAR 0, &(BCFD18+6))

BCFC9C 0005: RETURN (CV 1 ($sum))

BCFD14 0006: JMP (&(BD01C8+10))

BCFD8C 0008: INIT_FCALL_BY_NAME (NULL, CONST: "sumrand")

BCFE04 0008: SUB (CV 0 ($n), CONST: "1") -> TMP_VAR 1

BCFE7C 0008: SEND_VAL (TMP_VAR 1)

BCFEF4 0008: SEND_VAL (CONST: NULL)

BCFF6C 0008: SEND_VAL (CONST: "1")

BCFFE4 0008: DO_FCALL (CONST: "rand") -> VAR 2

BD005C 0008: ADD (CV 1 ($sum), VAR 2) -> TMP_VAR 3

BD00D4 0008: SEND_VAL (TMP_VAR 3)

BD014C 0008: DO_FCALL_BY_NAME () -> VAR 4

BD01C4 0008: RETURN (VAR 4)

BD023C 0010: RETURN (CONST: NULL)

所以,不,它肯定不是这样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值