(PHP 5, PHP 7, PHP 8)
ReflectionFunction::__construct — 建構 ReflectionFunction 物件
如果 function 參數不包含有效的函式,則會拋出 ReflectionException。
範例 #1 ReflectionFunction::__construct() 範例
<?php
/**
* 一個簡單的計數器
*
* @return int
*/
function counter1()
{
static $c = 0;
return ++$c;
}
/**
* 另一個簡單的計數器
*
* @return int
*/
$counter2 = function()
{
static $d = 0;
return ++$d;
};
function dumpReflectionFunction($func)
{
// 顯示基本資訊
printf(
"\n\n===> %s 函式 '%s'\n".
" 宣告於 %s\n".
" 第 %d 行到第 %d 行\n",
$func->isInternal() ? '內建' : '使用者定義',
$func->getName(),
$func->getFileName(),
$func->getStartLine(),
$func->getEndline()
);
// 顯示文件註釋
printf("---> 文件註釋:\n %s\n", var_export($func->getDocComment(), 1));
// 顯示靜態變數 (如果有的話)
if ($statics = $func->getStaticVariables())
{
printf("---> 靜態變數: %s\n", var_export($statics, 1));
}
}
// 建立 ReflectionFunction 類別的實例
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>上述範例的輸出會類似於
===> The user-defined function 'counter1'
declared in Z:\reflectcounter.php
lines 7 to 11
---> Documentation:
'/**
* A simple counter
*
* @return int
*/'
---> Static variables: array (
'c' => 0,
)
===> The user-defined function '{closure}'
declared in Z:\reflectcounter.php
lines 18 to 23
---> Documentation:
'/**
* Another simple counter
*
* @return int
*/'
---> Static variables: array (
'd' => 0,
)