Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP - Tiêu chuẩn nghiêm ngặt:Chỉ các biến nên được thông qua bằng tham chiếu

Vấn đề là ở đây trong câu lệnh if của bạn:

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

Bạn không thể chuyển đầu ra của array_keys() bằng tham chiếu, vì vậy trước tiên bạn phải gán nó cho một biến để có thể chuyển nó bằng tham chiếu. Như thế này:

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

Tại sao bạn phải làm điều này?

Bởi vì end() đặt con trỏ bên trong của mảng thành phần tử cuối cùng, vì vậy nó thực hiện điều này bằng cách tham chiếu (bạn cũng sẽ nhận thấy rằng bạn không phải gán giá trị trả về là end, vì tất cả được thực hiện bằng tham chiếu). Vì vậy, bạn không thể chuyển giá trị trả về của array_keys() bằng cách tham khảo, bởi vì bạn chỉ có thể chuyển những điều sau bằng cách tham chiếu:

  • Các biến, tức là foo ($ a)
  • Các câu lệnh mới, tức là foo (new foobar ())
  • Các tham chiếu được trả về từ các hàm, tức là:

Bạn có thể đọc thêm về cách chuyển bằng cách tham khảo trong sách hướng dẫn: 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. Truy vấn con MYSQL SELECT trong mệnh đề JOIN

  2. Cách được đề xuất để kết nối với MySQL từ Go là gì?

  3. Đặt hàng cột theo tiêu chí nhất định trong mysql

  4. Bạn có thể bỏ qua chuẩn bị PDO nếu không có phần giữ chỗ / dữ liệu động trong một truy vấn không?

  5. Truy vấn hiển thị nhóm hàng dữ liệu cột theo giá trị dữ liệu trong JSON từ php