Tôi muốn gọi hàm bằng call_user_func_array nhưng tôi nhận thấy rằng nếu đối số là tham chiếu trong định nghĩa hàm và là giá trị đơn giản trong call_user_func_array, cảnh báo sau sẽ xuất hiện: Cảnh báo: Tham số 1 để kiểm tra() được mong đợi là tài liệu tham khảo, giá trị nhất địnhPHP Làm thế nào để biết một biến là một tham chiếu?
đây là một ví dụ đơn giản về những gì tôi đang cố gắng để làm:
<?php
$a = 0;
$args = array($a);
function test(&$a) {
$a++;
}
$a = 0;
call_user_func_array('test', $args);
?>
câu hỏi của tôi là: làm thế nào tôi có thể biết nếu một giá trị (trong trường hợp này giá trị đầu tiên của $ args) là một tham chiếu hay không?
Tất cả tôi thấy là chức năng để kiểm tra xem hai mảng/đối tượng/biến được trỏ đến vùng nhớ cùng bằng cách sửa đổi một và kiểm tra nếu một cái khác cũng được sửa đổi. Trong mã của tôi (không phải ví dụ, một thực tế), tôi chỉ có các mảng đối số và tôi muốn biết nếu một đối số là một tham chiếu. Bằng cách đó, tôi có thể ném một lỗi nếu hàm gọi lại muốn tham chiếu và mảng chứa một giá trị đơn giản. –
Nó đã kích hoạt cảnh báo, dành cho nhà phát triển. Bạn muốn loại lỗi nào? Bạn có thể [thiết lập một trình xử lý lỗi tùy chỉnh] (http://php.net/set_error_handler) nếu bạn muốn thay đổi hành vi – cmbuckley