谁能帮我看看下面这一段代码,为什么出错啦!function diGui() {
$a = intval( $a );
$a++;
if ( $a <= 3 ) {
return diGui();
}
return $a;
}
echo diGui();
php递归函数里的变量在下一次调用函数本身的时候也可以使用吗?会不会有作用域的问题?
$a = intval( $a );
$a++;
if ( $a <= 3 ) {
return diGui();
}
return $a;
}
echo diGui();
php递归函数里的变量在下一次调用函数本身的时候也可以使用吗?会不会有作用域的问题?
解决方案 »
- thinkphp用import引入的文件,没有办法读取
- javascript引用php页面 数据表不刷新的问题 新人没有分 大家帮帮忙
- XAMPP里面,更改不了magic_quotes_gpc
- 谁能帮我把xx.sql数据库导入到phpmyadmin,并把导入后的那个数据库文件夹发给我????
- 求助,关于PHP编写网页挂机程序
- 200分求一个类,无限感激
- 请问自动显示当前周的内容怎么写啊
- 我查进程的时候,发现php.exe 的进程有好几个,是什么原因?
- $query="select * from table where name='$_SESSION["name"]'";$_SESSION["name"]中的双引号该怎么打才不会报错??
- mysql查询索引能提高速度怎么做到的。。
- .htaccess配置二级域名重定向目录后404错误无法捕捉
- php开发CRM系统的用户权限设计问题
function diGui($a) {
$a = intval( $a );
$a++;
if ( $a <= 3 ) {
return diGui($a);
}
return $a;
}
echo diGui(1);
<?php
$a=4;
function diGui($value) {
echo $value; if ($value==0) {
return "end";
}
else
{
return diGui($value-1);
}
}
echo diGui($a);?>
一楼这个不错,其实我本来是想详细了解递归函数的用法,对递归函数里变量的作用域不是很明白。
应该跟普通函数差不多咯。假如是下面一段代码呢?(错误貌似很多)function dirSize( $path ) {
// static $dir_size;
$dir_size = floatval( $dir_size );
if ( is_dir( $path ) ) {
$dirHandle = opendir( $path );
while ( ( $dirRead = readdir( $dirHandle ) ) !== false ) {
if ( $dirRead != '.' && $dirRead != '..' ) {
if ( is_dir( $dirRead ) ) {
$path .= "/$dirRead";
closedir( $dirHandle );
dirSize( $path );
}elseif ( is_file( $dirRead ) ) {
$path .= "/$dirRead";
$dir_size += filesize( $path );
$dir_size = round( $dir_size/1024, 2 ).'KB';
closedir( $dirHandle );
}
}
}
}
return $dir_size;
}echo dirSize( 'files' );
函数里定义的变量,只在该函数中有效你 #3 的代码中的 dirSize( $path ); 的返回值被抛弃了,所以你不可能得到正确的结果