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

php putting an array from _construct into function

我正在使用 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="bracelets。我希望这是一个数组。例如

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

}

好的,已经解决了。这是由于其他地方的小错误。有那么一刻,我认为 restful API 中的数组存在问题。

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

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

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

  • $cat_array$cat_arr
  • 变量名称混淆
  • 您 select 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);
}