Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PHP - Standar ketat:Hanya variabel yang harus diteruskan dengan referensi

Masalahnya ada di sini dalam pernyataan if Anda:

end(array_keys($params['territories']))

Anda tidak dapat meneruskan output array_keys() dengan referensi, jadi Anda harus terlebih dahulu menetapkannya ke variabel untuk dapat meneruskannya dengan referensi. Seperti ini:

$a = array_keys($params['territories']);
if ($key == end($a)) {

Mengapa Anda harus melakukan ini?

Karena end() menyetel penunjuk internal larik ke elemen terakhir, jadi ia melakukannya dengan referensi (Anda juga akan melihat bahwa Anda tidak harus menetapkan nilai kembalian akhir, karena semuanya dilakukan dengan referensi). Jadi Anda tidak dapat melewatkan nilai kembalian array_keys() dengan referensi, karena Anda hanya dapat meneruskan yang berikut ini dengan referensi:

  • Variabel, mis. foo($a)
  • Pernyataan baru, mis. foo(new foobar())
  • Referensi yang dikembalikan dari fungsi, yaitu:

Anda dapat membaca lebih lanjut tentang passing by reference di manual:http://php .net/manual/en/language.references.pass.php



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memastikan tidak ada kondisi balapan di database MySQL saat menambah bidang?

  2. skrip (sementara-loop) berhenti dan tidak memiliki output ketika beberapa kolom dipilih

  3. dapatkan semua item kategori dan anaknya

  4. CodeIgniter:Audit SQL dari semua panggilan metode $this->db->query()?

  5. json_decode(json_encode(array yang diindeks)) memberikan NULL