【问题标题】:How do you return an Array rather than an Object你如何返回一个数组而不是一个对象
【发布时间】:2016-05-03 02:29:30
【问题描述】:

我已经实现了这个,它在函数中返回了一个预期的数组,如下所示:

public function get_events()
    {


        $query = "SELECT * FROM events;";
        if($stmt = mysqli_prepare($this->Database, $query))
        {
            mysqli_stmt_bind_param($stmt, "s", $param);
            mysqli_stmt_execute($stmt);
            $resultObject = mysqli_stmt_get_result($stmt);
            mysqli_stmt_close($stmt);
        }

        $myArray = array();
        $size = mysqli_num_rows($resultObject);
        for($i = 0; $i < $size; $i++)
        {
            $myArray[$i] = mysqli_fetch_array($resultObject, MYSQLI_ASSOC);
        }

        echo '<pre>';
        print_r($myArray);

   }

/* CALL */
$Events = new Events();
$Events->get_events(); 

一个数组按我的预期显示。

但是,当我将其设置为 'return $myArray' 而不是 'print_r' 并再次调用该函数时,它会返回:

/* CALL */
$Events = new Events();
$Events->get_events(); 
echo '<pre>';
print_r($Events);

这是返回 -->

   Events Object
    (
    [Database] => mysqli Object
        (
            [affected_rows] => -1
            [client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: f373ea5dd5538761406a8022a4b8a374418b240e $
            [client_version] => 50011
            [connect_errno] => 0
            [connect_error] => 
            [errno] => 0
            [error] => 
            [error_list] => Array
                (
                )

            [field_count] => 10
            [host_info] => localhost via TCP/IP
            [info] => 
            [insert_id] => 0
            [server_info] => 5.6.21
            [server_version] => 50621
            [stat] => Uptime: 100448  Threads: 1  Questions: 1057  Slow queries: 0  Opens: 124  Flush tables: 1  Open tables: 83  Queries per second avg: 0.010
            [sqlstate] => 00000
            [protocol_version] => 10
            [thread_id] => 186
            [warning_count] => 0
        )

我希望能够返回一个数组,以便可以在多个实例中使用该查询。而不是在函数中回显 html 并且必须在其他地方重复相同的查询以获取相同的数据。

【问题讨论】:

  • 您正在打印对象 $event,如果您愿意,可以 print_r($Events->get_events()) 或将其放入变量中。

标签: php arrays function mysqli


【解决方案1】:
/* CALL */
$Events = new Events();
$myArray = $Events->get_events(); 
echo '<pre>';
print_r($myArray);

你必须将你的输出分配给一个变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 2019-05-18
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多