我正在创建一个网站,在代码中的某个地方我需要查询用户属性(例如:帐户状态),在同一行我有原因,情况是帐户状态是"挂起"。
我试图尽量减少对数据库的请求,所以我创建了一个函数来验证帐户状态。
function getAccountState($userid,$reason){}
我想做的是,如果帐户状态为"挂起",我会将$reason更改为"数据库原因"。
我已经这样做了,但如果我在函数内部更改$reason,那么在函数外部它就不会更改。我在谷歌上搜索了"php指针",但我认为没有这样的东西。
有办法做到这一点吗?另一种方式,我只是提出另一个数据库请求。。。
您当然可以通过引用传递变量,但由于您似乎不需要它,我只会从函数返回它:
function getAccountState($userid){
// your code
return $reason;
}
并称之为:
$reason = getAccountState($userid);
如果你想让代码保持原样,你可以通过引用传递变量:
function getAccountState($userid,&$reason){}
^ like so
您可以考虑通过引用传递它。或者只是更改函数以返回正确的信息。
在函数的定义中,您可以判断$reason参数是通过引用传递的,而不是通过值传递的。要执行此操作,请使用&变量前面:
function getAccountState($userid,& $reason){}
您正在寻找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"