PHP4变量在范围更改时丢失值

PHP4变量在范围更改时丢失值,php,mysql,forms,scope,php4,Php,Mysql,Forms,Scope,Php4,我已经尝试了所有我能想到的全局和超全局的组合。我没办法把价值转移过来。 我从MySQL select中提取$uid,并将其分配给一个整数值。正如您在代码开头看到的,结尾的大括号是包含$uid值的IF语句的结尾 如何在所有作用域中为$uid分配相同的值 这已经折磨了我两天了。如果这看起来很简单,我很抱歉,但这会让我发疯的。我尝试了$GLOBALS['uid']但没有效果。您可以尝试在全局范围内声明一次setter/getter函数,但它所做的只是访问全局函数 echo $uid; // RETUR

我已经尝试了所有我能想到的全局和超全局的组合。我没办法把价值转移过来。 我从MySQL select中提取
$uid
,并将其分配给一个整数值。正如您在代码开头看到的,结尾的大括号是包含
$uid
值的IF语句的结尾

如何在所有作用域中为
$uid
分配相同的值


这已经折磨了我两天了。如果这看起来很简单,我很抱歉,但这会让我发疯的。我尝试了
$GLOBALS['uid']
但没有效果。

您可以尝试在全局范围内声明一次setter/getter函数,但它所做的只是访问全局函数

echo $uid; // RETURNS INTEGER VALUE

if (isset ( $_POST ['cashpaid'] )) {
    $queryfinal = "select * from " . $db_prefix . "customer_det
          where `id` = '$uid'"; // UID RETURNS NULL
....
然后,不要回显
$uid
,而是尝试
globalUid($uid)
,稍后再尝试
$saved_uid=globalUid()


但我认为这两个作用域可能在两个不同的调用中执行,因此您可能需要将UID保存在会话变量中。

如果您的代码显示的与您在问题中包含它的方式完全相同,则回显时间
$UID
与将其附加到查询中的时间之间的作用域没有区别。@Vulcan,也没有“结束卷曲括号”。我想他只是忘了粘贴。不,我有一个结尾的大括号,但被国防部删掉了
function globalUid($value = False)
{
    GLOBAL $__uid;
    if (!isset($__uid))
        $__uid = False;
    if (False === $value)
        return $__uid;
    $__uid = $value;
}