0

この有用な回答に従って、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 クラスに移動しようとしました

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を学んでいます:)

4

1 に答える 1

1

refValues()クラス内から (別のメソッドから)呼び出す場合は、 を使用する必要があります$this->refValues($params)

于 2013-10-22T09:11:43.590 に答える