<?php
//静态变量
function myfunc(){
static $mystr;
$mystr = "哈";
echo $mystr."<br>\n";
}
myfunc();
myfunc();
myfunc();
?>各位能帮我确定下输出么?能告诉我为什么么?谢谢!
//静态变量
function myfunc(){
static $mystr;
$mystr = "哈";
echo $mystr."<br>\n";
}
myfunc();
myfunc();
myfunc();
?>各位能帮我确定下输出么?能告诉我为什么么?谢谢!
哈 <br>
哈 <br>
static是静态变量,是在编译的时候分配内存空间,一般变量是在运行时分配内存空间。
不过你这个似乎没什么用
哈
哈
哈 注:<br>隐藏了
<?php
//静态变量
function myfunc(){
static $mystr;
$mystr .= "哈";
echo $mystr."<br>";
}
myfunc();
myfunc();
myfunc();
?> 备注说明:静态变量只能运用于局部函数中,一旦定义的局部变量,则这个变量在函数运行结束后,其值不会丢失!以下是你写的代码:
static $mystr;
$mystr = "哈";
你定义了$mystr,但是你每次又将该静态变量重赋值为 "哈",所以不管你调用myfunc()多少次,每次输出的都是一个"哈".而我是这么写的:$mystr .= "哈";我的程序会这样执行:第一次调用 myfunc(),由于 $mystr还没有赋值,所以系统将它初始化为空,然后串接上"哈",第一次调用函数只输出一个"哈",当第二次调用 myfunc()时,由于$mystr的值在第一次函数调用时改变为"哈"了,这次在"哈"的基础上再串接上一个"哈",这是变成2个"哈"了,以此类推。。我这么讲,不知你明白没。。