比方說,我有一個私人的功能addUser()
在function.php
這需要$username
爲輸入變量,做一些事情:如何從CLI調用PHP函數?
function addUser($username) {
//do some stuff
}
現在我想調用這個函數並傳遞價值$的用戶名,如果可能的話用PHP CLI 。我想這不會從function.php
以外的工作,因爲它是私人的,但我怎麼能這樣做呢?
比方說,我有一個私人的功能addUser()
在function.php
這需要$username
爲輸入變量,做一些事情:如何從CLI調用PHP函數?
function addUser($username) {
//do some stuff
}
現在我想調用這個函數並傳遞價值$的用戶名,如果可能的話用PHP CLI 。我想這不會從function.php
以外的工作,因爲它是私人的,但我怎麼能這樣做呢?
您可以使用$ argv的。 $ argv [0] =文件名,$ argv [1] =文件名後的第一件事。
I.e. php function.php「some arg」 將會是addUser(「some arg」);
php -r 'include("/absolute/path/to/function.php"); addUser("some user");'
這應該有效。因爲你基本上正在執行'
之間的所有代碼。並且,您可以包括function.php
,並且,應該適當請致電addUser()
。
參見phpdoc。
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);
}
}
這適用於我!
我不明白「_won't從外面工作,因爲它是private_」。你能解釋一下你的意思嗎?基本上,類方法或函數的可見性與php運行的上下文無關。 – matthias