Tuần trước, Caleb đã tweet về một chức năng tiện lợi có tên là 0 - mà anh ấy đã tạo ra để dễ dàng làm việc với các thuộc tính và phương thức riêng tư Show
Anh ấy đã thêm chức năng 0 đó vào Livewire. Vì tôi có thể thấy mình đang sử dụng điều này trong các dự án không phải của Laravel, nên tôi đã đóng gói chức năng này trong một gói mới có tên là spatie/invadeSử dụng góiHãy tưởng tượng bạn đã định nghĩa lớp này có thuộc tính và phương thức riêng
Đây là cách bạn có thể lấy giá trị của thuộc tính riêng bằng cách sử dụng hàm 0
Hàm 0 cũng cho phép bạn thay đổi các giá trị riêng tư
Sử dụng 0, bạn cũng có thể gọi các chức năng riêng tư
Cách gói hoạt động dưới mui xeTruy cập các thuộc tính và phương thức riêng có vẻ kỳ diệu, nhưng nó khá dễ đạt được bằng cách sử dụng sự phản chiếu. Trên các lớp phản chiếu của nó, PHP có một phương thức 0 có thể công khai những thứ riêng tư trong thời gian chạyHàm 0 sẽ truyền đối tượng đã cho vào lớp 2. Lớp kẻ xâm lược đó có các phương thức 3, 4 và 5 ma thuật sẽ thực thi trên mỗi tương tác với đối tượng đã cho. Trước khi chuyển tiếp cuộc gọi đến đối tượng, nó sẽ được truy cậpMã nguồn rất nhỏ nên tôi có thể chia sẻ nó đầy đủ trong bài viết này
Và đó là tất cả để có nó Bạn có nên sử dụng cái này không?Tôi không nghĩ bạn nên sử dụng mã này trong mã của các dự án thông thường. Trong bối cảnh đó, bạn sẽ phải thiết kế mã của mình theo cách sao cho mọi thứ nên được gọi đều có thể gọi được dễ dàng Tôi nghĩ đến ba tình huống mà tôi có thể thấy 0 đang được sử dụng
Mặc dù bạn có thể tranh luận rằng làm như vậy không phải là một ý tưởng hay, nhưng thật tuyệt khi PHP cho phép tạo các hàm như 0
Làm cách nào để gọi phương thức riêng tư từ một lớp khác trong php?Trình chỉ định truy cập "riêng tư" có nghĩa là chỉ khả dụng trong lớp mà nó được định nghĩa, bạn không thể gọi nó từ bên ngoài lớp mà nó được định nghĩa, kể cả từ một lớp con . Thay vào đó, bạn có thể sử dụng trình xác định quyền truy cập "được bảo vệ" sẽ có sẵn cho các lớp con nhưng không có sẵn cho các lớp khác. . You can maybe use the "protected" access specifier instead which will be available to the child classes as well but not the other classes.
Làm cách nào để sử dụng phương thức riêng tư trong php?Từ khóa riêng tư là công cụ sửa đổi quyền truy cập. Nó đánh dấu một thuộc tính hoặc phương thức là riêng tư. Các thuộc tính và phương thức riêng chỉ có thể được sử dụng bởi lớp mà thuộc tính hoặc phương thức đó được định nghĩa . Các lớp dẫn xuất và mã bên ngoài không thể sử dụng chúng.
Chúng ta có thể gọi một phương thức riêng tư từ một đối tượng của một lớp không?Bạn có thể gọi phương thức riêng từ bên ngoài lớp bằng cách thay đổi hành vi thời gian chạy của lớp .
Làm cách nào tôi có thể gọi phương thức riêng tư?Chúng ta có thể gọi phương thức riêng của một lớp từ một lớp khác trong Java (được định nghĩa bằng công cụ sửa đổi truy cập riêng trong Java). Chúng ta có thể làm điều này bằng cách thay đổi hành vi thời gian chạy của lớp bằng cách sử dụng một số phương thức được xác định trước của Java . Để truy cập phương thức riêng tư của lớp khác, chúng tôi sẽ sử dụng Reflection API. |