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
Ví dụ
Function geeksforgeeks Function geeksforgeeks 4
Function geeksforgeeks Function geeksforgeeks 5
Function geeksforgeeks Function geeksforgeeks 6
Function geeksforgeeks Function geeksforgeeks 7
Function geeksforgeeks Function geeksforgeeks 8
Function geeksforgeeks Function geeksforgeeks 9 Function geeksforgeeks Function geeksforgeeks 0Function geeksforgeeks Function geeksforgeeks 1 Function geeksforgeeks Function geeksforgeeks 0
Function geeksforgeeks Function geeksforgeeks 1Function geeksforgeeks Function geeksforgeeks 1 Function geeksforgeeks Function geeksforgeeks 3Function geeksforgeeks Function geeksforgeeks 4Function geeksforgeeks Function geeksforgeeks 5Function geeksforgeeks Function geeksforgeeks 6Function geeksforgeeks Function geeksforgeeks 7
Function geeksforgeeks Function geeksforgeeks 5
_______01____240
Function geeksforgeeks Function geeksforgeeks 1____242Function geeksforgeeks Function geeksforgeeks 43Function geeksforgeeks Function geeksforgeeks 1Function geeksforgeeks Function geeksforgeeks 45
Function geeksforgeeks Function geeksforgeeks 46
Function geeksforgeeks Function geeksforgeeks 5
Function geeksforgeeks Function geeksforgeeks 48
Function geeksforgeeks Function geeksforgeeks 1 Function geeksforgeeks Function geeksforgeeks 3Function geeksforgeeks Function geeksforgeeks 51Function geeksforgeeks Function geeksforgeeks 5Function geeksforgeeks Function geeksforgeeks 6Function geeksforgeeks Function geeksforgeeks 7
Function geeksforgeeks Function geeksforgeeks 0Function geeksforgeeks Function geeksforgeeks 1Function geeksforgeeks Function geeksforgeeks 45
Function geeksforgeeks Function geeksforgeeks 42Function geeksforgeeks Function geeksforgeeks 43____31Function geeksforgeeks Function geeksforgeeks 45
Function geeksforgeeks Function geeksforgeeks 62
đầu ra. Function geeksforgeeks Function geeksforgeeks 3
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.
Các hàm được tham số hóa trong PHP là các hàm có tham số. Bạn có thể truyền bất kỳ số lượng tham số nào bên trong một hàm. Các tham số được truyền này hoạt động như các biến bên trong hàm của bạn
Chúng được chỉ định bên trong dấu ngoặc đơn, sau tên hàm
Đầu ra phụ thuộc vào các giá trị động được truyền dưới dạng tham số vào hàm
Ví dụ tham số hóa PHP 1
Cộng và trừ
Trong ví dụ này, chúng ta đã truyền hai tham số $x và $y bên trong hai hàm add() và sub()
đầu ra
Ví dụ tham số hóa PHP 2
Phép cộng và phép trừ với số động
Trong ví dụ này, chúng ta đã truyền hai tham số $x và $y bên trong hai hàm add() và sub()
đầu ra
Chúng tôi đã thông qua số sau,
Bây giờ nhấp vào nút THÊM, chúng tôi nhận được đầu ra sau
Bây giờ, nhấp vào nút SUBTRACTION, chúng tôi nhận được đầu ra sau
Một hàm trong PHP có thể được định nghĩa để chấp nhận đầu vào từ việc gọi môi trường/tập lệnh dưới dạng đối số. Các đối số này được đưa ra dưới dạng danh sách được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn trước tên hàm. Lưu ý rằng trong khi gọi một hàm, phải truyền cùng một số đối số cho nó
PHP hỗ trợ gọi một hàm bằng cách truyền giá trị, tham chiếu, đối số với giá trị mặc định và bằng cách truyền số lượng đối số thay đổi
chức năng với các đối số
Trong ví dụ sau, một hàm được định nghĩa với hai đối số hình thức. Khi hàm này được gọi bằng cách chuyển đối số theo giá trị. Các đối số của hàm trở thành các biến cục bộ của nó. Do đó, mọi thay đổi về giá trị của đối số bên trong hàm không phản ánh bên ngoài nó
Ở đây, giá trị của $x được thay đổi bên trong hàm, nhưng nếu chúng ta kiểm tra giá trị của nó sau khi gọi hàm thì nó không thay đổi
Ví dụ
Bản thử trực tiếp
Function geeksforgeeks Function geeksforgeeks 4đầu ra
Điều này sẽ tạo ra kết quả sau. -
Function geeksforgeeks Function geeksforgeeks 5Truyền mảng cho hàm
Trong ví dụ sau, hàm add() được định nghĩa để nhận mảng làm đối số. Bên trong hàm, các phần tử mảng được duyệt qua vòng lặp foreach
Ví dụ
Bản thử trực tiếp
đầu ra
Điều này sẽ tạo ra kết quả sau. -
Function geeksforgeeks Function geeksforgeeks 6Truyền đối số bằng tham chiếu
Các giá trị được truyền cho các đối số của hàm theo giá trị. Do đó, những thay đổi đối với giá trị của đối số bên trong hàm không được phản ánh bên ngoài nó. Khi các đối số được truyền theo tham chiếu, các thay đổi được chuyển sang giá trị của đối số bên ngoài nó
Để nhận giá trị theo tham chiếu, tên của đối số phải có tiền tố là ký hiệu $
Ví dụ
Bản thử trực tiếp
Function geeksforgeeks Function geeksforgeeks 7đầu ra
Điều này sẽ tạo ra kết quả sau. -
Function geeksforgeeks Function geeksforgeeks 8Giá trị của biến $x và $y được hoán đổi cho nhau trong hàm swap(). Vì, các biến được truyền theo tham chiếu, nên các biến cũng hiển thị các giá trị đã sửa đổi bên ngoài hàm
Gợi ý kiểu (Khai báo kiểu)
PHP trên thực tế là một ngôn ngữ kiểu động. Do đó, không cần thiết phải khai báo một biến với kiểu của nó (như trong C/C++ hoặc Java). Tuy nhiên, khai báo kiểu của các đối số trong một hàm cho phép trình phân tích cú pháp phát hiện các kiểu dữ liệu không chính xác được truyền cho hàm
cú pháp
Function geeksforgeeks Function geeksforgeeks 9Tất cả các kiểu dữ liệu PHP tiêu chuẩn bao gồm các kiểu vô hướng, mảng, lớp/giao diện, có thể lặp lại và đối tượng là các kiểu hợp lệ để cung cấp gợi ý kiểu trong khai báo hàm
Ví dụ
Bản thử trực tiếp
Function geeksforgeeks Function geeksforgeeks 0đầu ra
Điều này sẽ tạo ra kết quả sau. -
Function geeksforgeeks Function geeksforgeeks 1Cũng có thể lấy danh sách các đối số được truyền cho một hàm với sự trợ giúp của hàm func_get_args(). Chúng ta có thể chạy một vòng lặp PHP để duyệt qua từng giá trị trong danh sách các đối số được truyền. Trong trường hợp đó, định nghĩa hàm không có đối số chính thức
Ví dụ
Bản thử trực tiếp
Function geeksforgeeks Function geeksforgeeks 2đầu ra
Điều này sẽ tạo ra kết quả sau. -
Function geeksforgeeks Function geeksforgeeks 3Lưu ý rằng trong lần gọi hàm add() thứ hai, số float được đưa ra làm đối số, nhưng vẫn không có lỗi/cảnh báo nào được hiển thị. Điều này là do nội bộ PHP buộc float thành số nguyên để thực hiện phép cộng. Để ngăn chuyển đổi loại tự động như vậy, hãy sử dụng khai báo cấu trúc với nghiêm ngặt_types=1