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


PHP - how to use a variables that inside an if statement without using global

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

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;

或参考文献:

<?php
// $one = $two = 0;
$f = function (&$one, &$two) {
        $one = 1;
        $two = 2;
};
$f($one, $two);
echo $one, $two;