php将_construct中的数组放入函数中

时间:2015-03-03 17:25:24

标签: php arrays function api cat

II' m使用API​​并且想知道为什么我在使用数组进入函数时遇到问题。以下工作正常,但我怎样才能使它适用于数组。

public function __construct()
{
    parent::__construct(); // Init parent constructor
    $this->dbConnect();
    $this->test();
}

public function test()
{
    $this->category = "bracelets";

}

private function piece()
{
    // Pass an array into this function here and then use depending on array key
    $cat = $this->category;
}

因此,而不是常量$ this-> category ="手镯。我希望这是一个数组。 e.g。

public function test()
{
        $array = [
         "foo" => "bar",
         "bar" => "foo",
        ];
        $this->category = $array;

}

好的,这已经解决了。这是由于其他地方的一个小错误。有一会儿,我相信在一个宁静的API中有一个数组的问题。

我希望这对任何希望在api类中将一个函数结果传递给另一个函数的人都有用。

1 个答案:

答案 0 :(得分:0)

查看代码,您似乎希望category属性为所有类别的array,从数据库中读取..?

我确实发现了代码中的一些错误:

  • 您在$cat_array$cat_arr
  • 上有变量名称混淆
  • 您从数据库中选择cat列,但请尝试阅读category

我已对您的test()方法进行了细微更改以修复它:

public function __construct()
{
    parent::__construct(); // Init parent constructor
    $this->dbConnect();
    $this->test();
}

// Array with name of all categories, indexed by category id
private $category;

public function test()
{
    $query = "SELECT c.id, c.cat FROM category c order by c.id asc";
    $cat = $this->mysqli->query($query)
        or die ($this->mysqli->error . __LINE__);

    if ($cat->num_rows > 0) {
        $cat_array = array();
        while ($crow = $cat->fetch_assoc()) {
            $id = $crow['id'];
            $cat_array[$id] = $crow['cat'];
            //$cat_array[$crow['id']]=$crow['category'];
        }
        $this->category = $cat_array;
        //$this->response($this->json($result), 200); // send  details
    }
}

private function piece()
{
    // Pass an array into this function here and then use depending on array key
    $cat = $this->category;

    // Check if it is working as expected
    print_r($cat);
}