在调试的时候 如果遇到了闭包,很想知道具体是那个闭包。可是ide一般不会显示闭包的函数体。于是从网上抄了个函数用于显示闭包函数的内容
function my_closure_dump(closure $c) { $str = 'function ('; $r = new \reflectionfunction($c); $params = array(); foreach($r->getparameters() as$p) { $s = ''; if($p->isarray()) { $s .= 'array '; } elseif($p->getclass()) { $s .= $p->getclass()->name . ' '; } if($p->ispassedbyreference()){ $s .= '&'; } $s .= '$' . $p->name; if($p->isoptional()) { $s .= ' = ' . var_export($p->getdefaultvalue(), true); } $params []= $s; } $str .= implode(', ', $params); $str .= '){' . php_eol; $lines = file($r->getfilename()); for($l = $r->getstartline(); $l $r->getendline(); $l++) { $str .= $lines[$l]; } return$str;}
以上就介绍了查看闭包函数的函数体,包括了函数,查看方面的内容,希望对php教程有兴趣的朋友有所帮助。