Pertanyaan codeigniter, result () vs. result_array ()


Saya menggunakan keduanya result() dan result_array().

Biasanya saya ingin mendapatkan hasil saya sebagai array thats mengapa saya menggunakan result_array () kebanyakan ..

Tetapi saya ingin tahu pendekatan mana yang lebih baik yang harus saya ikuti, Mana yang lebih efisien untuk digunakan dalam hal kinerja?

Berikut adalah Contoh yang saya bicarakan dalam query codeigniter

$query = $this->db->get();
$result = $query->result_array();

atau apakah ini seharusnya menjadi pendekatan yang lebih baik ??

$query = $this->db->get();
$result = $query->result();

juga sekarang saya menggunakan result_array dalam model generik saya.


32
2018-05-12 11:17


asal


Jawaban:


Hasil memiliki opsional $type parameter yang memutuskan apa jenis hasil yang dikembalikan. Secara default ($type = "object"), ia mengembalikan suatu objek (result_object()). Ini dapat diatur ke "array", maka akan menghasilkan serangkaian hasil, yang setara dengan caling result_array(). Versi ketiga menerima kelas khusus untuk digunakan sebagai objek hasil.

Kode dari CodeIgniter:

/**
* Query result. Acts as a wrapper function for the following functions.
*
* @param string $type 'object', 'array' or a custom class name
* @return array
*/
public function result($type = 'object')
{
    if ($type === 'array')
    {
        return $this->result_array();
    }
    elseif ($type === 'object')
    {
        return $this->result_object();
    }
    else
    {
        return $this->custom_result_object($type);
    }
}

Array secara teknis lebih cepat, tetapi mereka bukan objek. Itu tergantung di mana Anda ingin menggunakan hasilnya. Sebagian besar waktu, array sudah cukup.


29
2018-05-12 11:23



demi referensi:

// $query->result_object() === $query->result()
// returns:
Array ( [0] => stdClass Object ( [col_A] => val_1A , [col_B] => val_1B , ... ) 
        [0] => stdClass Object ( [col_A] => val_2A , [col_B] => val_2B , ... ) 
        ...  
      ) 

// $query->result_array() !== $query->result()
// returns:
Array ( [0] => Array ( [col_A] => val_1A , [col_B] => val_1B , ... ) 
        [1] => Array ( [col_A] => val_2A , [col_B] => val_2B , ... )
        ... 
      ) 

codeigniter docs untuk hasil (), dan result_array ()


6
2018-05-16 16:08



result_array() lebih cepat, result() lebih mudah


3
2018-05-12 11:37



result () mengembalikan data tipe Object. . . . result_array () mengembalikan data jenis Array Asosiatif.


2
2018-02-16 06:29



Mengembalikan larik murni sedikit lebih cepat daripada mengembalikan larik objek.


1
2018-05-12 11:23



result() adalah rekursif karena mengembalikan objek kelas std mana sebagai result_array() hanya mengembalikan array murni, jadi result_array() akan menjadi pilihan mengenai kinerja. Namun ada sedikit perbedaan dalam kecepatan.


1
2018-05-12 11:24



dalam pengalaman saya menggunakan masalah result() dan result_array() di saya JSON jika menggunakan result() tidak ada masalah pekerjaannya tetapi jika menggunakan result_array() saya mendapat kesalahan "Trying to get property of non-object" jadi saya tidak mencari masalah yang mendalam jadi saya hanya menggunakan result() jika menggunakan JSON dan menggunakan result_array() jika tidak digunakan JSON 


0
2018-01-04 05:56