PHP 如何在类中正确移动函数


PHP how move function in a class correctly

根据这个有用的答案mysqli bind_param()期望成为参考,给定的值我可以创建动态查询。

现在,我正在学习 OOP,但我无法理解移动该功能、渲染保护和从其他方法访问的正确模式。

功能是:

function refValues($arr){
    if (strnatcmp(phpversion(),'5.3') >= 0) //Reference is required for PHP 5.3+
    {
        $refs = array();
        foreach($arr as $key => $value)
            $refs[$key] = &$arr[$key];
        return $refs;
    }
    return $arr;
}

现在我在类中调用它:

class MyBaseCrud {
// other stuff
$rc = call_user_func_array(array($stmt, 'bind_param'), refValues($params));
// other stuff
}

我会更多地了解 OOP,所以我会用这样的方法进行转换:

protected function refValues($array) {
    // body method
}

并在正确呼叫后从

$rc = call_user_func_array(array($stmt, 'bind_param'), refValues($params));

当然,我确实尝试在Body Class中移动该功能

protected function refValues($arr){
    if (strnatcmp(phpversion(),'5.3') >= 0) //Reference is required for PHP 5.3+
    {
        $refs = array();
        foreach($arr as $key => $value)
            $refs[$key] = &$arr[$key];
        return $refs;
    }
    return $arr;
}

并原封不动

$rc = call_user_func_array(array($stmt, 'bind_param'), refValues($params));

没有成功。

请轻轻地...现在才学 哎呀:)

如果要从类内部(从另一个方法)调用refValues(),则应使用 $this->refValues($params)