người hướng dẫn. [0. 00] Chúng ta mới học cách lấy giá trị kết quả được thực thi từ một hàm, nhưng chúng ta chưa học cách truyền dữ liệu vào một hàm. [0. 08] Vì các hàm không có quyền truy cập vào phạm vi bên ngoài, ý tưởng về một đối số đã được tạo để chúng tôi có thể truyền dữ liệu vào một hàm
[0. 18] Các đối số được truyền vào các hàm trong dấu ngoặc đơn, tương tự như cách hàm đếm này thực thi và truyền vào biến post. Hãy tạo một hàm khác, lần này là cho nội dung bài viết
[0. 32] Một lần nữa chúng ta sẽ sử dụng từ khóa hàm và chúng ta sẽ đặt tên cho hàm này là getPostText. Trong hàm này, hãy tiếp tục và sao chép nội dung từ biến $postText này vào hàm, sau đó chúng ta sẽ trả lại nó
[0. 53] Bạn sẽ nhận thấy rằng biến $numPost này được gạch dưới trong một nét nguệch ngoạc và cho biết nó không được xác định. Chúng ta có thể di chuyển biến $numPost và $post này vào hàm này, nhưng điều này phá vỡ nguyên tắc trách nhiệm duy nhất và hàm của chúng ta đang làm quá nhiều
[1. 13] Hãy nhớ rằng các chức năng chỉ nên thực hiện một việc và chỉ một việc duy nhất, vì vậy hãy tiếp tục và rút lại điều này. Thay vào đó, chúng ta sẽ chuyển $numPost này làm đối số cho hàm này. Trong dấu ngoặc đơn mở và đóng, chúng tôi sẽ tiếp tục và xác định biến $numPost của chúng tôi
[1. 33] Bạn sẽ thấy ngay dòng chữ nguệch ngoạc màu đỏ này biến mất, vì vậy mọi thứ hiện tại đều hợp lệ và giá trị của $numPost được thỏa mãn bởi biến này mà chúng ta đang chuyển vào làm đối số
[1. 46] Vì biểu thức này được thực thi và một giá trị được trả về khi chúng ta gọi getPostText, hãy tiếp tục và thay thế cùng một văn bản bằng một lệnh gọi getPostText. Sau đó, chúng tôi sẽ chuyển vào $numPost làm đối số cho hàm
[2. 05] Cũng giống như số đếm, chúng ta đang gọi hàm và sau đó chuyển đối số cho hàm. Khi chúng tôi lưu và tiếp tục và làm mới trang, chúng tôi sẽ thấy rằng mã vẫn thực thi chính xác như cũ, vì các biến hiện đang được chuyển đúng cách vào các hàm này và kết quả của các hàm được trả về chính xác cho cùng một biến
Theo mặc định, các biến PHP được truyền theo giá trị dưới dạng đối số hàm trong PHP. Khi các biến trong PHP được truyền theo giá trị, phạm vi của biến được xác định ở cấp hàm bị ràng buộc trong phạm vi của hàm. Thay đổi một trong hai biến không có bất kỳ ảnh hưởng nào đến một trong hai biến
Thí dụ
Function geeksforgeeks Function geeksforgeeks0
Function geeksforgeeks Function geeksforgeeks1
Function geeksforgeeks Function geeksforgeeks2
Function geeksforgeeks Function geeksforgeeks3
Function geeksforgeeks Function geeksforgeeks4
Function geeksforgeeks Function geeksforgeeks5
Function geeksforgeeks Function geeksforgeeks6
Function geeksforgeeks Function geeksforgeeks7
Function geeksforgeeks Function geeksforgeeks0
Function geeksforgeeks Function geeksforgeeks1
Function geeksforgeeks Function geeksforgeeks7
Function geeksforgeeks Function geeksforgeeks3
Function geeksforgeeks Function geeksforgeeks4
Function geeksforgeeks Function geeksforgeeks5
Function geeksforgeeks Function geeksforgeeks6
Function geeksforgeeks Function geeksforgeeks7
Function geeksforgeeks Function geeksforgeeks1
Function geeksforgeeks Function geeksforgeeks1
Function geeksforgeeks Function geeksforgeeks00
Function geeksforgeeks Function geeksforgeeks1____202____203
Function geeksforgeeks Function geeksforgeeks7
Function geeksforgeeks Function geeksforgeeks05
Function geeksforgeeks Function geeksforgeeks06
Function geeksforgeeks Function geeksforgeeks1
Function geeksforgeeks Function geeksforgeeks08
Function geeksforgeeks Function geeksforgeeks7
Function geeksforgeeks Function geeksforgeeks3
Function geeksforgeeks Function geeksforgeeks11____05
Function geeksforgeeks Function geeksforgeeks6
Function geeksforgeeks Function geeksforgeeks7
Function geeksforgeeks Function geeksforgeeks6
Function geeksforgeeks Function geeksforgeeks7____205
Function geeksforgeeks Function geeksforgeeks02
Function geeksforgeeks Function geeksforgeeks03____27
Function geeksforgeeks Function geeksforgeeks05
Function geeksforgeeks Function geeksforgeeks22
đầu ra.
Function geeksforgeeks Function geeksforgeeks3
Chuyển qua tham chiếu. Khi các biến được truyền theo tham chiếu, cần sử dụng ký hiệu & [dấu và] trước đối số biến. Ví dụ. hàm[ &$x ]. Phạm vi của cả biến toàn cục và biến hàm trở thành toàn cầu vì cả hai biến được xác định bởi cùng một tham chiếu. Vì vậy, mỗi khi biến toàn cục thay đổi thì biến bên trong hàm cũng thay đổi theo và ngược lại.
Giới thiệu
Trong PHP, các đối số cho một hàm có thể được truyền theo giá trị hoặc truyền theo tham chiếu. Theo mặc định, các giá trị của các đối số thực tế được truyền theo giá trị cho các đối số chính thức trở thành các biến cục bộ bên trong hàm. Do đó, việc sửa đổi các biến này không làm thay đổi giá trị của biến đối số thực tế
Khi các đối số được truyền theo tham chiếu, thay đổi về giá trị của đối số chính thức được phản ánh trong biến đối số thực tế vì biến đối số trước là tham chiếu đến biến đối số sau. Do đó, chuyển qua cơ chế tham chiếu giúp gián tiếp thao tác dữ liệu trong không gian toàn cầu. Nó cũng giúp khắc phục thực tế là một hàm chỉ có thể trả về một biến
Vượt qua giá trị
Trong ví dụ sau, hai biến được truyền cho hàm swap[]. Mặc dù cơ chế hoán đổi diễn ra bên trong hàm nhưng nó không thay đổi giá trị của các biến được truyền
Thí dụ
Bản thử trực tiếp
Function geeksforgeeks Function geeksforgeeks4
đầu ra
Ví dụ này cho đầu ra sau
Function geeksforgeeks Function geeksforgeeks5
Chuyển qua tham chiếu
Để nhận các đối số theo tham chiếu, đối số chính thức được sử dụng của biến phải có tiền tố là ký hiệu &. Nó tham chiếu đến các biến dùng để gọi hàm. Do đó, kết quả của việc hoán đổi hàm bên trong cũng sẽ được phản ánh trong các biến ban đầu được truyền
Thí dụ
Bản thử trực tiếp
Function geeksforgeeks Function geeksforgeeks4
đầu ra
Kết quả hoán đổi sẽ được hiển thị như sau
Function geeksforgeeks Function geeksforgeeks7
Trong ví dụ sau, phần tử mảng là tham chiếu đến các biến riêng lẻ được khai báo trước khi khởi tạo mảng. Nếu phần tử được sửa đổi, giá trị của biến cũng thay đổi
Thí dụ
Bản thử trực tiếp
đầu ra
Giá trị của $a, $b và $c cũng được tăng lên
Function geeksforgeeks Function geeksforgeeks8
Cũng có thể chuyển tham chiếu một mảng tới một hàm
Thí dụ
Bản thử trực tiếp
đầu ra
Mảng sửa đổi sẽ được hiển thị như sau
Function geeksforgeeks Function geeksforgeeks9
Đối tượng và tài liệu tham khảo
Trong PHP, các đối tượng được truyền theo tham chiếu theo mặc định. Khi một tham chiếu của đối tượng được tạo, tham chiếu của nó cũng được gửi dưới dạng đối số ở dạng $this cũng là tham chiếu đến đối tượng đầu tiên