PHP 4范围变化的变量损失值

时间:2012-11-02 19:17:00

标签: php mysql forms scope php4

echo $uid; // RETURNS INTEGER VALUE

if (isset ( $_POST ['cashpaid'] )) {
    $queryfinal = "select * from " . $db_prefix . "customer_det
          where `id` = '$uid'"; // UID RETURNS NULL
....

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

如何在所有范围内为$uid分配相同的值?

这已经让我大约两天了。我很抱歉,如果这看起来很简单,但它会让我疯狂。我试过$GLOBALS['uid']无济于事。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用在全局范围内声明一次的setter / getter函数,但它无论如何都无法访问GLOBALS。

function globalUid($value = False)
{
    GLOBAL $__uid;
    if (!isset($__uid))
        $__uid = False;
    if (False === $value)
        return $__uid;
    $__uid = $value;
}

然后,不要回复$uid,而是尝试globalUid($uid),然后再尝试$saved_uid = globalUid();

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