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

在PHP中使用来自另一个条件的变量,php,class,variables,post,get,Php,Class,Variables,Post,Get,我有以下代码: if(!isset($_GET["act"])) { $display->display("templates/install_main.html"); if(isset($_POST["proceed"])) { $prefix = $_POST["prefix"]; } } if($_GET["act"] == "act") { echo $prefix; } 基本上,我以前也提出过类似的问题,问题是,如何使变

我有以下代码:

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的计算结果为true,并且实际执行了$prefix=。。。代码

e、 g

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

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

早期代码不会有后期变量可用,因为实际为这些变量创建/分配值的代码尚未执行。

由于$\u GET['act']条件不能同时为true,因此$prefix变量不能存在于第二个条件中。这不是关于变量访问或范围,而是关于简单逻辑。不,不是!我尝试过…$echo将永远不会被尝试回显,或者在尝试时永远不会被定义。如果isset$\u GET[act]和if$\u GET[act]==act不能同时为真。那么我如何实际修复它呢?修复您的逻辑。你的两个外部“如果”在逻辑上是对立的。只有当$_GET['act']不存在时,第一个才是真的,而使用$prefix的第二个则要求它存在并有一个值。它们不可能都是真的。如果存在$\u GET['act'],则不会设置$prefix。如果它真的存在,那么$prefix就不能使用了。我试图用ifs来显示不同的HTML部分和不同的代码片段,根据它们在页面中的阶段,我仍然希望这样,我应该怎么做才能保留它,并对它进行逻辑编码?
echo $x; // undefined variable;
$x = 'y';
echo $y; // spits out 'y'