PHP如何正确地移动类中的函数

时间:2013-10-22 08:48:29

标签: php oop

根据这个有用的答案mysqli bind_param() expected to be a reference, value given,我可以创建动态查询。

现在,我正在学习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类中移动该函数

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));

没有成功。

请轻轻一点......现在就学习OOP:)

1 个答案:

答案 0 :(得分:1)

如果您从班级(来自其他方法)调用refValues(),则应使用$this->refValues($params)