2012-10-10 38 views
1

比方說,我有一個私人的功能addUser()function.php這需要$username爲輸入變量,做一些事情:如何從CLI調用PHP函數?

function addUser($username) { 

//do some stuff 

} 

現在我想調用這個函數並傳遞價值$的用戶名,如果可能的話用PHP CLI 。我想這不會從function.php以外的工作,因爲它是私人的,但我怎麼能這樣做呢?

+0

我不明白「_won't從外面工作,因爲它是private_」。你能解釋一下你的意思嗎?基本上,類方法或函數的可見性與php運行的上下文無關。 – matthias

回答

2

您得到您的命令行argumenst通過在argv陣列:

function addUser($username) { 

//do some stuff 

} 

addUser($argv[1]); 
+2

爲什麼-1? SO應該強制在-1時寫評論。 – Dev

+1

@JvdBerg只有'argv' - >'$ argv' – Havelock

+0

@Havelock:謝謝,更正 – JvdBerg

0

您可以使用$ argv的。 $ argv [0] =文件名,$ argv [1] =文件名後的第一件事。

I.e. php function.php「some arg」 將會是addUser(「some arg」);

4
php -r 'include("/absolute/path/to/function.php"); addUser("some user");' 

這應該有效。因爲你基本上正在執行'之間的所有代碼。並且,您可以包括function.php,並且,應該適當請致電addUser()

參見phpdoc

0
function funcb() 
{ 
    echo 'yes'; 
} 

if (php_sapi_name() === 'cli') { 
    if (count($argv) === 1) { 
     echo 'See help command'.PHP_EOL; 
     exit(); 
    } 

    if (function_exists($argv[1])) { 
     $func = $argv[1]; 
     array_shift($argv); 
     array_shift($argv); 
     $func(...$argv); 
    } 
} 

這適用於我!