首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自对象的数组仅包含一个结果

来自对象的数组仅包含一个结果
EN

Stack Overflow用户
提问于 2016-01-11 18:08:20
回答 2查看 86关注 0票数 2

我使用的是Laravel 5.2,并编写了如下代码,为什么变量result不同($mems和$member)

//Topup.php

代码语言:javascript
复制
$service = new \Spektr\Libraries\Service;
$member= $service->calc_bonus(2, 3);
print"Topup Result";
print_r($member);

这是我的Service类

代码语言:javascript
复制
<?php
namespace Spektr\Libraries;

class Service 
{

    public function calc_bonus($mem_id, $prd_id, $mems=null) {

        $bonus =0;  
        if(is_null($mems)) 
            $mems=[];
        $upline_id=\Spektr\Model\Member::whereMemId($mem_id)->value('upline_id');
        if ($upline_id) {

            \Log::info("upline-id: ".$upline_id);
            $this->calc_bonus($upline_id, $prd_id, $mems);
        }
print"service class result :";
print_r($mems);
        return $mems;
    }
}

当我运行topup.php时,页面结果将显示print_r($mems)和print_r($member)的结果,如下所示

代码语言:javascript
复制
service class result :Array
(
    [0] => Array
        (
            [mem_id] => 2
            [price] => 5100
            [bonus] => 0
        )

    [1] => Array
        (
            [mem_id] => 1
            [price] => 5000
            [bonus] => 100
        )

)
service class result :Array
(
    [0] => Array
        (
            [mem_id] => 2
            [price] => 5100
            [bonus] => 0
        )

)
Topup ResultArray
(
    [0] => Array
        (
            [mem_id] => 2
            [price] => 5100
            [bonus] => 0
        )

)

为什么Topup.php上的结果只包含一个数组?请帮助我的代码,

我希望来自topup.php的结果包含所有具有成员上行的成员

数据库数据的结构如下所示

代码语言:javascript
复制
mem_id|upline_id|name
1         null    member A
2          1      member B

Thx

EN

回答 2

Stack Overflow用户

发布于 2016-01-11 19:08:47

$member是topup.php中的变量,将其声明为数组

代码语言:javascript
复制
$service = new \Spektr\Libraries\Service();

$member  =  array();

$member= $service->calc_bonus(2, 3);
print"Topup Result";
print_r($member);

测试了你的代码,处理了上面的更改。

票数 0
EN

Stack Overflow用户

发布于 2016-01-12 10:46:46

我基于@raphioly-san的回答得出了这个解决方案

代码语言:javascript
复制
<?php
namespace Spektr\Libraries;

class Service 
{

    public function calc_bonus($mem_id, $prd_id, $mems=null) {

        $bonus =0;  
        if(is_null($mems)) 
            $mems=[];
        $upline_id=\Spektr\Model\Member::whereMemId($mem_id)->value('upline_id');
        if ($upline_id) {

            \Log::info("upline-id: ".$upline_id);
            $mems= $this->calc_bonus($upline_id, $prd_id, $mems); //<<-- add variable $mems
        }
print"service class result :";
print_r($mems);
        return $mems;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34718790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档