2010-08-18 46 views
4

在PHP中,我創建了一個用戶定義的函數。示例:如何在調用之前確定用戶定義的函數參數名稱?

<?php 
function test($one, $two) { 
    // do things 
} 
?> 

我想查找函數參數的名稱。我會如何去做這件事?

這是我想什麼一個例子:

<?php 
function test($one, $two) { 
    // do things 
} 

$params = magic_parameter_finding_function('test'); 
print_r($params); 
?> 

這將輸出:

Array 
(
    [0] => one 
    [1] => two 
) 

而且這是非常重要的,我能之外獲得用戶定義的函數的參數名稱函數的範圍。提前致謝!

+2

爲什麼你需要做的是這樣的一個PHP? – 2010-08-18 18:33:02

+0

@coronatus你和我都想知道同樣的事情? – Chris 2010-08-18 18:34:59

+1

聞起來像http://en.wikipedia.org/wiki/Inner-platform_effect – 2010-08-18 18:35:32

回答

6

可以使用reflection做到這一點...

$reflector = new ReflectionFunction('test'); 
$params = array(); 
foreach ($reflector->getParameters() as $param) { 
    $params[] = $param->name; 
} 
print_r($params); 
+0

可能需要是$ params [] = $ param-> name?否則,我認爲全面的反思是正確的想法。 – 2010-08-18 18:36:08

+0

@Beau Simensen,好的電話。我忘了這一點(我已經編輯回來了)... – ircmaxell 2010-08-18 18:37:22

+0

也'新ReflectionMethod('類','方法');'如果看類方法而不是獨立函數。除了__call()魔術方法之外,我還使用它來記錄方法名稱和參數名稱,以針對特別棘手的代碼段中的值,我必須清楚地看到進行調試的數據。 – Jason 2012-08-16 17:03:35

0

可以使用count_parameter內置功能

相關問題