PHP vượt qua các đối số

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 geeksforgeeks
0

Function geeksforgeeks 
Function geeksforgeeks
1

Function geeksforgeeks 
Function geeksforgeeks
2

Function geeksforgeeks 
Function geeksforgeeks
3

Function geeksforgeeks 
Function geeksforgeeks
4

Function geeksforgeeks 
Function geeksforgeeks
5
Function geeksforgeeks 
Function geeksforgeeks
6
Function geeksforgeeks 
Function geeksforgeeks
7
Function geeksforgeeks 
Function geeksforgeeks
0

Function geeksforgeeks 
Function geeksforgeeks
1
Function geeksforgeeks 
Function geeksforgeeks
7
Function geeksforgeeks 
Function geeksforgeeks
3
Function geeksforgeeks 
Function geeksforgeeks
4
Function geeksforgeeks 
Function geeksforgeeks
5
Function geeksforgeeks 
Function geeksforgeeks
6
Function geeksforgeeks 
Function geeksforgeeks
7

Function geeksforgeeks 
Function geeksforgeeks
1

Function geeksforgeeks 
Function geeksforgeeks
1
Function geeksforgeeks 
Function geeksforgeeks
00

Function geeksforgeeks 
Function geeksforgeeks
1____202____203
Function geeksforgeeks 
Function geeksforgeeks
7
Function geeksforgeeks 
Function geeksforgeeks
05

Function geeksforgeeks 
Function geeksforgeeks
06

Function geeksforgeeks 
Function geeksforgeeks
1

Function geeksforgeeks 
Function geeksforgeeks
08

Function geeksforgeeks 
Function geeksforgeeks
7
Function geeksforgeeks 
Function geeksforgeeks
3
Function geeksforgeeks 
Function geeksforgeeks
11____05
Function geeksforgeeks 
Function geeksforgeeks
6
Function geeksforgeeks 
Function geeksforgeeks
7

Function geeksforgeeks 
Function geeksforgeeks
6
Function geeksforgeeks 
Function geeksforgeeks
7____205

Function geeksforgeeks 
Function geeksforgeeks
02
Function geeksforgeeks 
Function geeksforgeeks
03____27
Function geeksforgeeks 
Function geeksforgeeks
05

Function geeksforgeeks 
Function geeksforgeeks
22

đầ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.

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 geeksforgeeks
4

đầu ra

Ví dụ này cho đầu ra sau

Function geeksforgeeks 
Function geeksforgeeks
5

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 geeksforgeeks
4

đầu ra

Kết quả hoán đổi sẽ được hiển thị như sau

Function geeksforgeeks 
Function geeksforgeeks
7

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 geeksforgeeks
8

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 geeksforgeeks
9

Đố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

Làm cách nào để chuyển n số đối số trong PHP?

PHP hỗ trợ hàm đối số có độ dài thay đổi. Nó có nghĩa là bạn có thể truyền 0, 1 hoặc n số đối số trong hàm. Để làm như vậy, bạn cần sử dụng 3 dấu chấm lửng [dấu chấm] trước tên đối số . Khái niệm 3 dấu chấm được triển khai cho đối số có độ dài thay đổi kể từ PHP 5. 6.

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 để truyền một hàm trong PHP?

Một hàm PHP được truyền theo tên của nó dưới dạng một chuỗi . Có thể sử dụng bất kỳ chức năng tích hợp sẵn hoặc do người dùng xác định nào, ngoại trừ các cấu trúc ngôn ngữ như. mảng [], echo, trống [], eval [], thoát [], isset [], danh sách [], in hoặc không đặt [].

Làm cách nào để chuyển mảng làm đối số 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 . hàm sendemail[$id, $userid]{ //. } sendemail[mảng['a', 'b', 'c'], 10];

Chủ Đề