var_export的实现以及局部变量、静态变量、参数的使用

来源:互联网 发布:试客赚钱软件 编辑:程序博客网 时间:2024/04/30 00:42

局部变量、静态变量、参数在递归回溯中的使用:

1、静态变量在参与递归回溯的过程中变量的值如果被改变,那么回溯时值也会是被改变的值。

2、局部变量在函数回溯过程中值不会改变,保存递归调用之前的值。

3、参数和局部变量差不多一样,但是参数可以在递归调用时传递参数——与回溯无关。



<?phpclass a{public function __construct(){echo "正在测试<br>";}};function my_var_export($varible,$tmp=" "){ $buffer=""; static $record=0;if(is_array($varible)){$record+=4;str_pad($tmp,$record+1," ",STR_PAD_LEFT);$buffer.=$record>4?"<br>".$tmp."array(<br>":"array(<br>";if($record>4) $tmp.="   ";foreach($varible as $key=>$value){if(!is_int($key)) $key="'".$key."'";$buffer.=$tmp.$key." => ".my_var_export($value,$tmp).",<br>";}$tmp=substr($tmp,15);$buffer.=$record>4?$tmp.")":")";}else if(is_int($varible)){return $varible;}else if(is_string($varible)){return "'".$varible."'";}else if(is_float($varible)){return $varible;}else if(is_bool($varible)){return $varible?"true":"false";}else if(is_null($varible)){return 'null';}else{throw new exception("未知数据类型");}return $buffer;}$a=new a();$arr=array("dd",array('cc2',"cc5","dd",array("dd8",array("dd9"))),"dd1",$a);try{echo my_var_export($arr);}catch(Exception $e){echo $e->getMessage();}echo "<br>";var_export($arr);?>