null $foo): void;
public function bar(?Bar $bar): void;
Laravel php 8
Truyền tham số theo tên liên hệ – function PHP 8
Việc một function sở hữu phổ biến tham số (với mình là từ 3 tham số trở nên), có lẽ khiến developer lúng túng khi tiêu dùng vì không nhớ rõ ý nghĩa của lần nào tham số, tương tự như thiết bị tự truyền của chúng.
Ví dụ, function mkdir()
(function giúp cho tạo thư mục) trong Laravel php 8 nắm tới 4 tham số lần lượt là:
$directory
: Bắt buộc, là đường dẫn để tạo thư mục$permissions
: Không bắt buộc, là khả năng đăng nhập vào thư mục (kiểu 0777, hay 0655), mặc định là 0777.$recursive
: Không bắt buộc, sở hữu tặng phép tạo thư mục con ngay cả khi thư mục cha không tồn tại (cho phép tạo kiểu đệ quy), mặc định làfalse
.$context
: Không bắt buộc, còn ý nghĩa là gì thì mình cũng chẳng hiểu lắm, chưa từng dùng đến tham số này.
Các vấn đề mà một developer thường xuyên gặp phải khi tiêu dùng Laravel php 8 mkdir()
đó là:
- Đôi khi không nhớ rõ đồ vật tự của 2 tham số
$permissions
và$recursive
, không biết tham số nào được viết trước. - Nếu muốn thay thế bởi giá trị của tham số
$recursive
từfalse
trở thànhtrue
, developer buộc phải truyền cả tham số$permissions
(vì$permissions
đứng trước$recursive
).
Cả hai vấn đề trên đều gây bất tiện khi tiêu dùng, để khắc phục nó, thì PHP cung cấp cú pháp mới đưa cho phép truyền tham số theo tên gọi:
1
2
3
4
5
6
7
8
9
|
<?php // PHP 7.x mkdir ( './hello/world' , 0777, true); // PHP 8 mkdir (recursive: true, directory: './hello/world' ); // Hoặc mkdir ( './hello/world' , recursive: true); |
Lưu ý:
– Đây chỉ là cú pháp mới mà PHP 8 cung cấp để tiện tiêu dùng hơn khi cần, còn bạn vẫn có thể tiêu dùng cú pháp cũ bình có lẽ trên phiên bản PHP 8 này.
– Tên tham số bạn không được phép “tự nghĩ ra” mà phải tuân theo tài liệu của PHP. Giống như trong ví dụ trên, recursive
và directory
là 2 tham số mà mình buộc phải tuân theo tài liệu mà PHP cung cấp.
Lê Trương Tấn Lộc (sieutocviet.net)
Với 6 năm kinh nghiệm Python, PHP 7 năm thực chiến trong quản lý website tư vấn giải pháp SEO từ khóa, Marketing tối ưu nhất cho tập đoàn quốc tế.
Hiện làm trưởng phòng kinh doanh tại Siêu Tốc Việt.