类似于.net的out功能,php中可以使用&实现
如下示例:
<?php
$x=2;
inOutFunction($x);
function inOutFunction(&$x){
$x=3;
return 'a';
}
echo $x;
exit();
同样,在递归中可以使用此方法传值:
如下示例遍历文件夹中的文件:
<?php
$dir='/';
print_r(scanfDir($dir,true,$ret)); function scanfDir($dir = '', $all = false, &$ret = array()) {
$x='avc';
if (false !== ($handle = opendir($dir))) {
while (false !== ($file = readdir($handle))) {
if (!in_array($file, array('.', '..', '.git', '.gitignore', '.svn', '.htaccess', '.buildpath', '.project'))) {
$cur_path = $dir . '/' . $file;
if (is_dir($cur_path)) {
$ret['dirs'][] = $cur_path;
$all && scanfDir($cur_path, $all, $ret);
} else {
$ret ['files'] [] = $cur_path;
}
}
}
closedir($handle);
}
return $ret;
}