<?php
$conent=5;
function staic_test(){
static $conent=0;
$conent++;
return $conent;
}
echo $conent."<br/>";
++$conent;
echo staic_test();
echo "<br/>";
echo staic_test();
echo "<br/>";
echo staic_test();
?>
这个程序的执行结果为
5、1、2、3
但当我把程序该成一下
<?php
$conent=5;
function staic_test(){
static $conent=0;
return $conent++;
}
echo $conent."<br/>";
++$conent;
echo staic_test();
echo "<br/>";
echo staic_test();
echo "<br/>";
echo staic_test();
?>
执行结果就会发生变化执行结果为:
5、0、1、2
我想问下在这里我只改变了下
在返回的时候一个是$content++;
在return $content;
与执行返回$content++的区别是什么?$content++的作用是先赋值在在加1

解决方案 »

  1.   

    return $content++将返回content加1前的值,如果你要一句完成同样的功能,要用return ++$content. 这个是C中++运算前置和后置的区别而已。
      

  2.   

    <?php 
    $conent=5; 
    function staic_test(){ 
    static $conent=0; 
    $conent++; 
    return $conent; 

    echo $conent." <br/>"; //这个是5,我无疑问
    ++$conent; // $conent=5,$conent+1=6 ??不是吗?
    echo staic_test(); //$conent重置为0,再+1,输出1
    echo " <br/>"; 
    echo staic_test(); //再静态重置为0,+1,不是输出1吗??
    echo " <br/>"; 
    echo staic_test(); //再静态重置为0,+1,不是输出1吗??
    ?>
    我有两点疑问,请哥们答疑