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?
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.
You get your command line argumenst passed in a argv array:
function addUser($username) {
//do some stuff
}
addUser( $argv[1] );
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");
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!