この記事では、debug_backtrace、debug_print_backtrace、および匿名関数の使用法分析について紹介します。詳細を知る必要がある学生は参照してください。
debug_print_backtrace との違いは、バックトレース情報を直接出力することです。
debug_print_backtrace() は非常に地味な関数なので、注目する人はほとんどいません。
しかし、あるオブジェクトを別のオブジェクトに呼び出し、次に他のオブジェクトやファイル内の関数を呼び出してエラーが発生すると、笑ってしまいます。
debug_print_backtrace() は、ページの呼び出しプロセスを出力し、どこから来てどこへ行ったかを明確にします。
しかし、これは PHP5 の独自機能です。幸いなことに、これは pear に実装されています。
1. debug_backtrace 関数の呼び出し情報をバックトレースできる、デバッグツールとも言えます
コードは次のとおりです
| コードをコピー
|
一();
関数 1() { 2() } ;
関数 2() { 3() } ;
関数 3() { print_r( debug_backtrace() );
/*出力:
配列(
[0] => 配列 ( ;
[ファイル] =>
[行] = & gt;
[関数] =>
[引数] => 配列 (
)、
[1] => 配列 ( ;
[ファイル] =>
[行] => 6
[function] =>two
[引数] =>
)、
[2] => 配列 ( ;
[ファイル] =>
[行] => 3
[関数] =>
[引数] =>
)
)*/
2. debug_print_backtrace の違いは、バックトレース情報を直接出力することです。
3.匿名機能
クロージャとも呼ばれる匿名関数は、PHP 5.3 以降、キーワードの使用も匿名関数で追加されました。
まずコールバック関数のパラメータとしての無名関数の例を見てみましょう |
コードは次のとおりです
コードをコピー
echo preg_replace_callback('~-([a-z])~', function ($match) {
strtoupper($match[1]);を返します
}、'hello-world'
); |
// helloWorldを出力します
?> |
クロージャと外部変数を接続するキーワード: USE
クロージャは、コード ブロックのコンテキストでいくつかの変数と値を保存できます。 PHP のデフォルトでは、匿名関数は、それが配置されているコード ブロックのコンテキスト変数を呼び出すことはできませんが、 use キーワードを使用する必要があります
コードは次のとおりです |
コードをコピー |
関数テスト(){
$num = 2;
$array = array(1,2,3,4,5,6,7,8);
Print_r(array_filter($array, function($param) use ($num){
$param % intval($num) ==0 を返します })
);}
テスト();
|
http://www.bkjia.com/PHPjc/445616.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445616.html技術記事この記事では、debug_backtrace、debug_print_backtrace、および匿名関数の使用法分析について紹介します。詳細を知る必要がある学生は参照してください。 debug_print_backtrace とは異なります...
|