ホームページ  >  記事  >  バックエンド開発  >  php debug_backtrace、debug_print_backtrace、および匿名関数_PHP チュートリアル

php debug_backtrace、debug_print_backtrace、および匿名関数_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 10:59:18859ブラウズ

この記事では、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 を返します })
);}
テスト();


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445616.html技術記事この記事では、debug_backtrace、debug_print_backtrace、および匿名関数の使用法分析について紹介します。詳細を知る必要がある学生は参照してください。 debug_print_backtrace とは異なります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。