Tham chiếu truyền qua mảng PHP
1) Khi một mảng được truyền dưới dạng đối số cho một phương thức hoặc hàm, thì nó được truyền theo tham chiếu hay theo giá trị? Show 2) Khi gán một mảng cho một biến, biến mới có tham chiếu đến mảng ban đầu hay là một bản sao mới?
Có phải 4 là tham chiếu đến 5 không?Giải pháp tốt nhấtĐối với phần thứ hai của câu hỏi của bạn, hãy xem trang mảng của sách hướng dẫn, trong đó nêu rõ (trích dẫn)
Và ví dụ đã cho
Hãy xem xét ví dụ về mã này
Nó sẽ cho đầu ra này
Điều này cho biết hàm chưa sửa đổi mảng "bên ngoài" được truyền dưới dạng tham số. nó được chuyển dưới dạng bản sao và không phải là tài liệu tham khảo Có thể bạn quan tâmNếu bạn muốn nó được chuyển qua tham chiếu, bạn sẽ phải sửa đổi chức năng theo cách này
Và đầu ra sẽ trở thành
Vì, lần này, mảng đã được chuyển "theo tham chiếu"
Giải pháp liên quanC++ – Sự khác nhau giữa biến con trỏ và biến tham chiếu trong C++
Javascript – Cách kiểm tra xem một mảng có chứa giá trị hay không trong JavaScriptCác trình duyệt hiện đại có , cái này thực hiện chính xác điều đó và bởi tất cả mọi người ngoại trừ IE 2Bạn cũng có thể sử dụng 8, cách này ít trực tiếp hơn nhưng không yêu cầu polyfill cho các trình duyệt lỗi thời 3Nhiều khung cũng cung cấp các phương pháp tương tự
Lưu ý rằng một số khung triển khai chức năng này dưới dạng hàm, trong khi các khung khác thêm chức năng vào nguyên mẫu mảng PHP có vượt qua giá trị hoặc tham chiếu không?Đó là theo giá trị theo Tài liệu PHP. Theo mặc định, các đối số của hàm được truyền theo giá trị (để nếu giá trị của đối số bên trong hàm bị thay đổi, nó sẽ không bị thay đổi bên ngoài hàm). Để cho phép một hàm sửa đổi các đối số của nó, chúng phải được chuyển qua tham chiếu.
Làm cách nào để chuyển tham số theo tham chiếu trong PHP?Chuyển theo tham chiếu
. Một ví dụ về một chức năng như vậy sẽ như sau. hàm( &$x ). Phạm vi của các biến toàn cục và hàm trở thành toàn cầu. add the ampersand ( & ) symbol before the argument of the variable. An example of such a function will look as follows: function( &$x ). The scope of the global and function variables becomes global.
Mảng có được truyền qua tham chiếu không?Giống như tất cả các đối tượng Java, mảng được truyền theo giá trị . nhưng giá trị là tham chiếu đến mảng. Chuyển thực theo tham chiếu liên quan đến việc chuyển địa chỉ của một biến để biến đó có thể được cập nhật. Đây KHÔNG phải là điều xảy ra khi bạn chuyển một mảng trong Java.
Làm cách nào để chuyển một đối số cho một mảng trong PHP?Bạn có thể truyền một mảng làm đối số . Nó được sao chép theo giá trị (hoặc COW'd, về cơ bản có nghĩa giống với bạn), vì vậy bạn có thể array_pop() (và tương tự) tất cả những gì bạn thích trên đó và sẽ không ảnh hưởng đến bất kỳ thứ gì bên ngoài. hàm sendemail($id, $userid){ //. } sendemail(mảng('a', 'b', 'c'), 10); |