PHP có các tham số được đặt tên không?

PHP8. 0 giới thiệu các đối số được đặt tên. Đây là một phần mở rộng của cú pháp vị trí hiện tại. Đối số được đặt tên loại bỏ một số hạn chế. Nó cũng hiện đại hóa cách các phương thức được gọi với số lượng đối số tùy ý, với toán tử trải rộng. Hãy xem những gì đang xảy ra ở đó

Xem nhanh các tham số được đặt tên

Cho đến ngày 7 cuối cùng. x, PHP chỉ sử dụng các tham số vị trí. Đối số ở vị trí đầu tiên được gán cho tham số ở vị trí đầu tiên, trong chữ ký phương thức. Mọi đối số bị thiếu sau đó sẽ được điền bằng giá trị mặc định. Cuối cùng, các đối số không cần thiết bị loại bỏ hoặc một thông báo được đưa ra để báo hiệu rằng các tham số bị thiếu

 

Vấn đề phát sinh với các tham số tùy chọn. Đặc biệt khi có nhiều người trong số họ và tất cả họ đều độc lập. Các đối số vị trí áp đặt rằng tất cả các tham số được cung cấp trước khi sử dụng giá trị mặc định và do đó, có thể bị bỏ qua. Khi một tùy chọn phải được đặt và nó nằm ở cuối danh sách tham số, tất cả các giá trị trước đó phải được điền

 
 
1 cổ điển. Hãy lưu ý rằng chúng phân biệt chữ hoa chữ thường

 
 

Từ bây giờ, các đối số được xác định theo tên của chúng, không phải vị trí của chúng. Vì vậy, các giá trị có thể được gán cho đối số phù hợp và thứ tự gọi có thể khác với chữ ký của phương thức

Như bạn có thể thấy, tên của đối số là một loại tài liệu trong mã. Điều này làm cho đối số thứ 7 của setcookie[] trở nên rõ ràng. đó là

 
 
3 và chúng có tác dụng ngược lại. Trong một chữ ký,
 
 
3 với các giá trị băm trong mảng

 
 
1 trong tên chỉ mục, vì nó không cần thiết

Các đối số bổ sung được báo hiệu bằng Lỗi nghiêm trọng.

 
 
8

Tất cả những gì là cổ điển. Tiếp theo là mới

Băm đầy đủ

Băm khớp rất chặt chẽ với phương thức truyền đối số. Tất cả các tên là duy nhất trong chỉ mục băm, giống như các đối số của phương thức. Không có

 
 
3 thực hiện, khi nó được sử dụng trong chữ ký phương thức

 
 
8

Hiện có 2 sắc thái giữa các cuộc gọi. đầu tiên, đối số nhận được sẽ thay đổi hình dạng của nó tùy thuộc vào cú pháp gọi

Cuộc gọi đầu tiên là phiên bản mã hóa cứng. Khi nhận,

 
 
1 là một mảng, có một phần tử.
 
 
2. Điều này được mong đợi. Việc thêm đối số thứ ba vào lệnh gọi sẽ thêm giá trị này vào sau giá trị
 
 
2

Cuộc gọi thứ hai là phiên bản động vị trí. Khi nhận,

 
 
1 hiện là một mảng của mảng và các đối số thực tế nằm ở chỉ mục [0]. Điều này tương thích ngược với PHP 7. 2, cũng đang hành xử như vậy. Tuy nhiên, điều này có nghĩa là cách gọi một phương thức có thể ảnh hưởng đến định dạng của các đối số nhận được

Các đối số Variadic hiện được đặt tên

PHP8. 0 giới thiệu một thay đổi mới. mảng kết quả bây giờ cũng là một hàm băm. Nó không phải là một mảng, với một số nguyên là chỉ số. Nó là một hàm băm, trong đó tên của chỉ mục duy nhất là tên của tham số

 
 
0

Chỉ số

 
 
5 đã trở thành chỉ số
 
 
6. Chữ cái này là tên của đối số và nó không thay đổi theo cú pháp gọi. Lần này, nó là một sự thay đổi không tương thích ngược. mã tìm nạp giá trị đối số phải truy cập vào chỉ mục
 
 
6 chứ không phải
 
 
5

Một cách khắc phục vấn đề này là áp dụng array_values[] cho đối số đến, để quay trở lại hành vi trước đó. Nếu không, đối số có thể được hợp nhất bởi array_merge[] với các mảng khác và khóa sẽ di chuyển khắp ứng dụng. array_merge[] và một số hàm gốc PHP khác, giữ nguyên các khóa

Đối số được đặt tên và biến số

Các đối số được đặt tên là mới trong PHP 8. 0 và chúng đã ảnh hưởng đến mã của chúng tôi. Thay vì sử dụng các mảng tùy chọn, giờ đây có thể có tất cả chúng trong chữ ký phương thức và bỏ qua chúng khi cần. Đây chắc chắn là một cải tiến. Tính không tương thích ngược, như lập chỉ mục các đối số biến đổi, sẽ yêu cầu một số điều chỉnh

Đặt tên đối số có thể đọc được sẽ có tác động khác. Cho đến bây giờ, các tên đối số được giới hạn trong lĩnh vực của phương thức và chúng không có khả năng hiển thị bên ngoài. Với PHP8. 0, điều quan trọng là phải đặt tên có ý nghĩa cho các đối số, để chúng có thể đóng vai trò là tài liệu và dễ nhớ

Bạn có thể sẵn sàng cho PHP 8. 0, bằng cách chạy Exakat trên cơ sở mã của bạn. Dưới đây là một số đề nghị đọc

PHP có hỗ trợ các tham số được đặt tên không?

Như đã nêu trong các câu trả lời khác, PHP không hỗ trợ trực tiếp các tham số đã đặt tên .

Tham số được đặt tên trong PHP là gì?

Đối số được đặt tên cho phép truyền đối số cho hàm dựa trên tên tham số, thay vì vị trí tham số . Điều này làm cho ý nghĩa của đối số tự ghi lại, làm cho các đối số không phụ thuộc vào thứ tự và cho phép bỏ qua các giá trị mặc định một cách tùy ý.

Hàm PHP có tham số là gì?

Hàm được tham số hóa PHP là những 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.

Java có các tham số được đặt tên không?

Java không có tham số được đặt tên . Đó là lý do tại sao tôi nói đây là "thành ngữ Java tốt nhất mà tôi từng thấy để mô phỏng các đối số từ khóa". "Các tham số được đặt tên" của Objective-C cũng ít lý tưởng hơn, vì chúng buộc phải đặt hàng cụ thể. Chúng không phải là đối số từ khóa thực sự như trong Lisp hoặc Python.

Chủ Đề