如何在函数中使用外部变量?

时间:2016-01-28 10:31:20

标签: php function laravel

我在这里看到其他一些用户问这个,我尝试了他们在答案部分所说的内容,但没有任何对我有用。

我有这个变量:

$inputs = \Request::all();
$domain = $inputs['domain'];

现在$ domain是我需要的域名。

这是我的功能:

function searchfor ($search)
{
    $path = '/var/www/laravel/logs/vhosts/';
    $shell_exec = shell_exec("grep -c -i $search  $path" . $domain . ".log");
    return $shell_exec;
}

这没有用,因为PHP当然不知道$domain是什么。

现在我尝试在函数中添加global $domain;,但这也没有用。

我也试过这个:

function anzahlsuche($search) use ($domain) { ... }

但它是一样的,它对我没用。

有人知道我能做什么吗?

我正在使用Laravel框架,也许有人知道laravel中的解决方案,当然普通的php也会这样做。

1 个答案:

答案 0 :(得分:3)

两个选项 - 将变量作为参数传递给函数,或使用全局表达式命名函数中的变量。变量必须在调用函数的范围内可用。

 $inputs = \Request::all();
 $domain = $inputs['domain'];

 function anzahlsuche($search,$domain)
        {
            $path = '/var/www/laravel/logs/vhosts/';
            $shell_exec = shell_exec("grep -c -i $search  $path" . $domain . ".log");
            return $shell_exec;
        }

 function anzahlsuche($search)
        {
            global $domain;
            $path = '/var/www/laravel/logs/vhosts/';
            $shell_exec = shell_exec("grep -c -i $search  $path" . $domain . ".log");
            return $shell_exec;
        }