How to call a PHP function from CLI?

2019-07-25 20:30发布

Let's say I have a private function addUser() in function.php that takes $username as an input variable and does some stuff:

function addUser($username) {

//do some stuff

}

Now I want to call this function and pass the value $username, if possible with PHP CLI. I guess that won't work from outside function.php since it's private, but how could I do this then?

4条回答
Lonely孤独者°
2楼-- · 2019-07-25 20:35

You get your command line argumenst passed in a argv array:

function addUser($username) {

//do some stuff

}

addUser( $argv[1] );
查看更多
等我变得足够好
3楼-- · 2019-07-25 20:38
php -r 'include("/absolute/path/to/function.php"); addUser("some user");'

This should work. Because you are basically executing all that code in between 's. And in that you can include function.php and, should appropriately call addUser().

see phpdoc.

查看更多
Emotional °昔
4楼-- · 2019-07-25 20:49

You can use $argv. $argv[0] = the filename, $argv[1] = first thing after filename.

I.e. php function.php "some arg" would be addUser("some arg");

查看更多
三岁会撩人
5楼-- · 2019-07-25 21:02
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);
    }
}

This works for me!

查看更多
登录 后发表回答