PHP-如何在不使用全局变量的情况下使用if语句中的变量

PHP-如何在不使用全局变量的情况下使用if语句中的变量,php,variables,if-statement,Php,Variables,If Statement,我试图从一个函数中提取两个变量值,而不需要使用全局函数,当然我们将在另一页使用这个函数 function get_selected_page() { if (isset($_GET['subj'])) { $sel_subject = get_subject_by_id($_GET['subj']); $sel_page = NULL; } elseif (isset($_GET['page'])) { $sel_page = ge

我试图从一个函数中提取两个变量值,而不需要使用全局函数,当然我们将在另一页使用这个函数

function get_selected_page() {
    if (isset($_GET['subj'])) {
        $sel_subject = get_subject_by_id($_GET['subj']);
        $sel_page = NULL;
    } elseif (isset($_GET['page'])) {
        $sel_page = get_page_by_id($_GET['page']);
        $sel_subject = NULL;
    } else {
        $sel_subject = NULL;
        $sel_page = NULL;
    }
}

变量是$sel_subject和$sel_page

您可以从函数返回它们,在数组中:

return array(
    'sel_page' => $sel_page,
    'sel_subject' => $sel_subject
);
然后像这样使用它:

$vars = get_selected_page();
echo $vars['sel_page'];
您可以使用以下会话:

<?php

$f = function () {
        $_SESSION['one'] = 1;
        $_SESSION['two'] = 2;
};

$f();

extract($_SESSION);

echo $one, $two;

以数组()的形式返回它们<代码>返回数组($sel_subject,$sel_page)实际上它不起作用,因为我不想回显变量,我只希望它不会给我一个错误,当我捕获函数的值时。所以使用数组并不是最好的方法。我不想重复变量,我想按原样使用整个函数。但是当我使用它的时候。它给了我一个错误,因为他们不能定义变量。所以我只想定义页面的值。再次定义为不捕捉。
<?php

// $one = $two = 0;

$f = function (&$one, &$two) {
        $one = 1;
        $two = 2;
};

$f($one, $two);

echo $one, $two;