2

我正在创建一个网站,并且在代码中的某处我需要查询用户属性(例如:帐户状态),并且在同一行中我有原因,案例是帐户状态为“暂停”。

我试图最小化对数据库的请求,所以我创建了一个函数来验证帐户状态。

function getAccountState($userid,$reason){}

我想要做的是,如果帐户状态“暂停”,我会将 $reason 更改为“数据库原因”。

我已经这样做了,但是如果我在函数内部更改 $reason,在函数外部它不会改变。我在谷歌上搜索了“php 指针”,但我认为没有这样的东西。

有没有办法做到这一点?否则,我将发出另一个数据库请求...

4

4 回答 4

2

您当然可以通过引用传递变量,但由于您似乎不需要它,我只会从函数中返回它:

function getAccountState($userid){
  // your code
  return $reason;
}

并称之为:

$reason = getAccountState($userid);

如果你想保持你现在的代码,你可以通过引用传递变量

function getAccountState($userid,&$reason){}
                                 ^ like so
于 2013-02-19T17:07:21.320 回答
0

在函数的定义中,您可以看出 $reason 参数是通过引用而不是值传递的。为此,请在变量前使用 &:

function getAccountState($userid,& $reason){}
于 2013-02-19T17:10:00.437 回答
0

您可以考虑通过引用传递它。或者可能只是更改函数以返回正确的信息。

于 2013-02-19T17:08:31.803 回答
0

您正在寻找 PHP 术语中的引用,而不是指针。

他们以这种方式工作:

function getAccountState($userid, &$reason){  // Notice the &
    $reason = "database locked";  // Use it as a regular variable
}


getAccountState(12345, $reason);  // Here, it is written as a regular variable, but it is a ref.
echo $reason;   // echoes "database locked"
于 2013-02-19T17:13:03.137 回答