回 帖 发 新 帖 刷新版面

主题:[讨论]为什么第二个输出是10个10阿

<?php

function Test()
{
   static $c = 0;
  
   $c++;
   echo "$c";
  if ($c < 10) 
    {   
       Test();
      
   }
   
    //$count--;
   echo "<p>$c";  //这个$c为什么输出的是10个10阿
   
}

Test();

?> 

回复列表 (共2个回复)

沙发

我不会解释这个程序的运行结果,但加了几句后,可以让我们体会到程序的流程:
<?php
function Test()
{
  static $c;// = 0;  
  static $d;
  $c++;
  if ($c <10) 
    { 
       Test();
       $c++;
       $d++;
echo "a"."$c"."   "; 
echo "b"."$d"."   "; 
    }  
echo "c"."$c"."   ";  //这个$c为什么输出的是10个10阿   
echo "d"."$d"."<br>"; 
}
Test();
?>
运行结果是:
c10 d
a11 b1 c11 d1
a12 b2 c12 d2
a13 b3 c13 d3
a14 b4 c14 d4
a15 b5 c15 d5
a16 b6 c16 d6
a17 b7 c17 d7
a18 b8 c18 d8
a19 b9 c19 d9
你是怎样发现这个现象的?说说好吗?谢谢了!

板凳

我是才开始自学php的,以前自学过c,这个是在php手册上看到的局部函数的例子,我就是在例子中加了个echo "$c",运行后发现的,我理解不了为什么是10个10,我想应该输出1个10才对
没有人能解释一下吗

我来回复

您尚未登录,请登录后再回复。点此登录或注册