0
echo $uid; // RETURNS INTEGER VALUE

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

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

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

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

4

1 回答 1

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 保存在会话变量中。

于 2012-11-02T19:43:48.910 回答