Hướng dẫn what is return $this in php? - return $ this trong php là gì?
Có nhiều kịch bản trong đó người ta có thể muốn trả lại Show Ví dụ: trong một lớp trừu tượng SQL, bạn có thể có một đối tượng đại diện cho một truy vấn và sau đó gọi một loạt các phương thức trên đó để mở rộng nó. Xem xét mã sau:
Nếu mỗi phương thức của ____ 8 trả về đối tượng truy vấn đã được sửa đổi, thay vào đó chúng ta có thể viết điều này như:
Phiên bản thứ hai gần hơn với cách bạn viết một truy vấn SQL thực tế và nó hoạt động mà không giới thiệu biến EXTA PHP RFC: $ loại trả về này
Giới thiệu Loại trả về tĩnh được giới thiệu trong PHP 8.0 cho phép chỉ định rằng một phương thức phải trả về một thể hiện của phạm vi liên kết tĩnh (LSB) muộn, thường là trường hợp của các hàm tạo được đặt tên, phương pháp Wither và API thông thạo. Tuy nhiên, API Fluent có một hợp đồng cụ thể hơn yêu cầu trả lại Loại trả lại 3 thường được sử dụng thay cho 4 khi nói đến các giao diện trôi chảy. Trên một bộ dữ liệu gồm các gói nhà soạn nhạc 2K, 3 xảy ra 29k lần, trong khi 4 được sử dụng 38k lần. Loại trả về 8), mà còn là nhận dạng đối tượng của nó (của $this ). Nhận dạng đối tượng rất quan trọng đối với việc sử dụng API, bởi vì nó xác định liệu giá trị trả về có thể bị loại bỏ một cách an toàn:// Definitely valid if methods return $this type (fluent API). // May not be valid if they only return static (may be wither API). $obj->method1() ->method2() ->method3(); // Definitely valid if methods return $this or static type (fluent/wither irrelevant). $obj = $obj->method1() ->method2() ->method3(); Do đó, ngay cả khi một phương thức sử dụng loại trả về 8 gốc, hiện tại nó vẫn có thể phải chỉ định 3 ngoài việc làm rõ hợp đồng API. Điều này đặc biệt phù hợp với các giao diện, trong đó điều này không chỉ xác định việc sử dụng hợp lệ mà còn thực hiện hợp lệ.Ví dụ: Bộ nhớ cache của Symfony Chỉ định: interface ItemInterface extends CacheItemInterface { // Other APIs omitted. /** * @return $this */ public function tag(string|iterable $tags): static; } Theo RFC này, nó sẽ trở thành: interface ItemInterface extends CacheItemInterface { public function tag(string|iterable $tags): $this; } Đề nghị Loại 8. Ngoài ra, nó chỉ có thể được áp dụng trong trường hợp phạm vi thể hiện (có khả năng) tồn tại, đó là các phương thức thể hiện và đóng không tĩnh. Nó không thể được áp dụng cho các hàm tự do, phương thức tĩnh và đóng tĩnh, vì chúng không bao giờ có thể có giá trị $this .Một phương pháp có loại trả về class Test { public function method(): $this { $that = $this; return $that; } } Loại 8. Như vậy, có thể hạn chế loại 8 thành $this trong một lớp con (nhưng không phải là cách khác):class A { public function method1(): static {} public function method2(): $this {} } class B extends A { // This override is legal. public function method1(): $this {} // This override is illegal. public function method2(): static {} } Trong phản xạ, loại interface ItemInterface extends CacheItemInterface { // Other APIs omitted. /** * @return $this */ public function tag(string|iterable $tags): static; }2 với interface ItemInterface extends CacheItemInterface { // Other APIs omitted. /** * @return $this */ public function tag(string|iterable $tags): static; }3 và interface ItemInterface extends CacheItemInterface { // Other APIs omitted. /** * @return $this */ public function tag(string|iterable $tags): static; }4. Thay đổi lạc hậu không tương thích Không có thay đổi tương thích ngược, vì Mã sử dụng interface ItemInterface extends CacheItemInterface { // Other APIs omitted. /** * @return $this */ public function tag(string|iterable $tags): static; }6 có thể cần được cập nhật để hỗ trợ loại $this mới.Bỏ phiếuCó không. Có nghĩa là gì khi trả lại trong PHP?Định nghĩa và sử dụng Từ khóa trả về kết thúc một hàm và, tùy chọn, sử dụng kết quả của một biểu thức làm giá trị trả về của hàm.Nếu trả về được sử dụng bên ngoài hàm, nó sẽ dừng mã PHP trong tệp đang chạy.ends a function and, optionally, uses the result of an expression as the return value of the function. If return is used outside of a function, it stops PHP code in the file from running.
Là gì :: vsNói một cách đơn giản, :: là cho các thuộc tính cấp lớp và-> là cho các thuộc tính cấp đối tượng.:: is for class-level properties, and -> is for object-level properties.
Làm thế nào tôi có thể trả về hai biến trong PHP?PHP không hỗ trợ để trả về nhiều giá trị trong một hàm.Bên trong một hàm khi câu lệnh trả về đầu tiên được thực thi, nó sẽ điều khiển trực tiếp trở lại hàm gọi và câu lệnh trả về thứ hai sẽ không bao giờ được thực thi.. Inside a function when the first return statement is executed, it will direct control back to the calling function and second return statement will never get executed.
Làm thế nào tôi có thể trả lại hai mảng trong PHP?Tính toán hàm PHP () {$ dt1 = mảng ('1', '2');$ dt2 = mảng ('1', '2');return mảng ($ dt1, $ dt2);} $ data = tính toán ();Đầu ra: print_r ($ data [0]);print_r ($ data [1]);?> Đầu ra Bạn sẽ nhận được dưới dạng hai mảng. |