dongxiz5342 2014-09-23 06:13 采纳率: 100%
浏览 25
已采纳

从类方法返回数组

Currently I am having a few issues returning an array from a class' method. here is my little test:

Here is my method:

private function getUser($uid,$set,$params){
        switch($set){
            case 'dvar':
                $col = $params[0];
                $needle = $params[1];

                $res = $this->dbh->prepare("SELECT col,val FROM acl_users_dvars WHERE uid=:uid");
                $res->bindParam(':uid', $uid);
                $res->execute();
                foreach($res->fetchAll(PDO::FETCH_ASSOC) as $k=>$v){
                    $rows[$k]=$v;
                }
                return($rows);
            break;
        }

    }

now, vardumping directly above return $rows; results in:

Array
(
    [0] => Array
        (
            [col] => thisiscol!
            [val] => this...is.my.VARRRRRRRRRRRRRRRRR
        )

    [1] => Array
        (
            [col] => thisiscol2!
            [val] => this is my bar
        )

)

However, on the page I initialize the class and call the method:

$user = array(
    '5',
    'dvar',
    array('thisiscol!')
);
$tOb = $test->getResponce('get_user',$user);
var_dump($tOb);

I am simply returned with:

NULL

edit

as stated from the last answer, and i am sorry I completely left this out: Here is a partial from my getResponce method:

public function getResponce($do_what, $parameters){
        switch(strtolower($do_what)){
                case 'create_user':
                    self::createUser($parameters[0],$parameters[1]);
                break;
                case 'remove_user':
                    self::remUser($parameters[0]);
                break;
                case 'set_user':
                    self::setUser($parameters[0],$parameters[1],$parameters[2]);
                break;
                case 'get_user':
                    self::getUser($parameters[0],$parameters[1],$parameters[2]);
                break;
  • 写回答

4条回答 默认 最新

  • doudianhuo1129 2014-09-23 06:16
    关注

    Your function name says getUser() but you are attempting to call getResponce() -

    $user = array(
        '5',
        'dvar',
        array('thisiscol!')
    );
    $tOb = $test->getResponce('get_user',$user);
    var_dump($tOb);
    

    I think you got the answer :)

    UPDATE In your calling params array, you are just keeping array('thisiscol!')

    $user = array(
        '5',
        'dvar',
        array('thisiscol!')
    );
    

    But inside the getUser() function, you are trying to access

                $col = $params[0];
                $needle = $params[1];
    

    I see $params[1] is missing.

    ALSO

    Try adding return in your getResponce()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件