PHP có một số hàm tuyệt vời (như array_walk) cho phép bạn xử lý từng phần tử trong một mảng. Chúng thường được thiết lập để bạn chỉ định mảng bạn muốn xử lý như tham số đầu tiên và hàm gọi lại để áp dụng cho từng phần tử làm phần tử thứ hai. Các hàm này trả về các boolean cho biết thành công, không phải là bản sao của mảng đã sửa đổi như bạn mong đợi. Nếu bạn muốn mảng được sửa đổi, bạn phải chuyển mảng theo tham chiếu như array_walk(&$my_array, 'my_callback');
Sử dụng các hàm như array_walk (và các hàm tương tự) để sửa đổi mảng trong PHP> = 5.3
Tuy nhiên, trong PHP 5.3 trở lên, nếu bạn chuyển qua tham chiếu đến hàm gọi, bạn sẽ gặp lỗi E_DEPRECATED.
Có ai biết (nếu có) một cách chính xác để sử dụng các hàm này để sửa đổi mảng mà không kích hoạt lỗi và không triệt tiêu chúng không? Có các lựa chọn thay thế mới hơn cho các chức năng xử lý mảng cũ này không.
Ah ... cảm ơn, có ý nghĩa. Sắc thái thú vị - bạn không thể gọi theo tham chiếu, nhưng bạn có thể định nghĩa một hàm/phương thức với các đối số được tham chiếu. http://php.net/manual/en/language.references.pass.php Tôi vẫn muốn những hàm đó trả về các bản sao của mảng đã sửa đổi hoặc null thay vì boolean! – Ray
Vâng, chính xác. Vui mừng được giúp đỡ. –