如何在 php 中記錄函數參數值?func_get_arg() 函數:返回指定索引的參數值(從 0 開始)。debug_backtrace() 函數:返回一個數組,包含當前函數調用中傳遞的參數。
如何在 PHP 中記錄函數參數值
記錄函數參數值在調試和分析中至關重要。PHP 提供了靈活的方法來實現這一點。
使用 func_get_arg
func_get_arg
函數返回調用函數時傳遞的參數值。它以索引(從 0 開始)接受一個參數,表示要檢索的參數。
function myFunction() { $arg1 = func_get_arg(0); $arg2 = func_get_arg(1); // ... } myFunction('foo', 'bar');
登錄后復制
使用 debug_backtrace
debug_backtrace
函數返回一個包含所有活動函數調用的數組。我們可以使用此函數來查看函數參數傳遞給當前函數的調用。
function myFunction() { $args = debug_backtrace()[1]['args']; // ... } myFunction('foo', 'bar');
登錄后復制
實戰案例
為了展示如何使用這些技術,讓我們考慮一個查找數組中最大值的函數:
function findMax(array $arr) { $max = $arr[0]; for ($i = 1; $i < count($arr); $i++) { if ($arr[$i] > $max) { $max = $arr[$i]; } } return $max; }
登錄后復制
我們可以使用 func_get_arg
來記錄傳遞的數組:
function findMax() { $arr = func_get_arg(0); // ... }
登錄后復制
或者,我們可以使用 debug_backtrace
來記錄包含傳遞數組的調用:
function findMax() { $trace = debug_backtrace()[1]; $arr = $trace['args'][0]; // ... }
登錄后復制