【发布时间】:2023-03-20 01:45:01
【问题描述】:
我的函数 getUser() 对用户信息进行数据库选择。在这个函数中,我调用了另一个名为 calcPercentage() 的函数,它从存储在 $result 中的数据库中获取接收到的值,然后删除一些值(索引)并进行计算。完成后,第二个函数将一个值返回给第一个函数。
我的问题是第二个函数 calcPercentage() 中删除的值影响了从数据库接收到的原始值。
查看代码
function getUser()
{
$result = DB::select();
// say $result = name, surname, email, telephone
$percentage = $this->calcPercentage($result);
var_dump($result)
// now $result = name, surname
}
function calcPercentage($data)
{
$u_data = $data;
unset($u_data->email);
unset($u_data->telephone);
// the above values are not needed for the calculations,
// thus they are being removed.
... do calculation
return $percentage
//$percentage would be = 100 || >100;
}
我想从对象中删除值而不影响函数 getUser(); 中的原始变量; 预期结果。
function getUser()
{
$result = DB::select();
// say $result = name, surname, email, telephone
$percentage = $this->calcPercentage($result);
var_dump($result)
// now $result = name, surname, email, telephone
}
我应该在这里对数据库进行另一个查询吗?
【问题讨论】:
-
您需要使用
clone来复制您的对象。