在PHP中使用来自另一个条件的变量


Using a variable from another condition in PHP

我有这个代码:

if(!isset($_GET["act"]))
{
    $display->display("templates/install_main.html");
    if(isset($_POST["proceed"]))
    {
        $prefix = $_POST["prefix"];
    }
}
if($_GET["act"] == "act")
{
    echo $prefix;
}

基本上,我以前也提出过类似的问题,问题是,如何使变量可访问?请说明是否有任何方法可以做到这一点,即使改变了它的完成方式(有人告诉我,这对一个类来说是可能的,但不太确定如何完成),或者任何其他方法可以访问它。

谢谢!

PHP的变量范围是函数级$前缀将在您的第二个if()IF中可用,其他的IF()被评估为true并实际执行该$prefix = ...代码。

例如

if (true) {
    $foo = 'bar'; // always executes
}
if (false) {
    $baz = 'qux'; // never executes
}
echo $foo; // works just fine
echo $baz; // undefined variable, because $baz='qux' never executed.

还要注意,PHP不能进行时间旅行:

echo $x; // undefined variable;
$x = 'y';
echo $y; // spits out 'y'

"早期"代码将没有"后期"变量可用,因为实际为这些变量创建/赋值的代码还没有执行。