Hướng dẫn what is return void in php? - void return trong php là gì?

Tôi đã thử nghiệm các loại trả lại với PHP 7.

Tôi đã tạo một tập lệnh đơn giản để kiểm tra các loại trả về của PHP 7:

<?php Class Obj { public function __construct(){ } public function test(): string { //a string needs to be returned return "ok"; } } function foo(): Obj { //instance of Obj needs to be returned return new Obj(); } $o = foo(); echo $o->test(); // output: ok

Bây giờ trong các ngôn ngữ lập trình khác khi bạn chỉ định loại trả về void, điều đó có nghĩa là bạn không thể trả lại bất cứ điều gì hoặc bạn sẽ gặp lỗi. Vì vậy, tôi đã viết kịch bản này:

<?php function foo(): void { } foo();

Bây giờ trong tập lệnh trên, đầu ra dự kiến ​​là không có gì. Thay vào đó, nó cho tôi một lỗi nghiêm trọng:

Lỗi nghiêm trọng: Giá trị trả về của foo () phải là một ví dụ của khoảng trống, không có gì được trả về trên dòng 2

Câu hỏi của tôi là (tôi không thể tìm thấy nó), trong Php 7 sẽ có loại void tương tự?

Rizier123

57.8K16 Huy hiệu vàng91 Huy hiệu bạc142 Huy hiệu đồng16 gold badges91 silver badges142 bronze badges

Hỏi ngày 22 tháng 4 năm 2015 lúc 9:12Apr 22, 2015 at 9:12

3

Edit:

Một RFC riêng biệt mới cho một loại trả lại void đã được công bố, đã vượt qua phiếu bầu và được thực hiện trong Php 7.1. Bây giờ có một loại trả lại void trong PHP. :)
There is now a void return type in PHP. :)

Bài viết gốc:

Được lấy từ wiki.php.net:

Công việc tương lai

Ý tưởng cho công việc trong tương lai nằm ngoài phạm vi của RFC này bao gồm:

  • Cho phép các chức năng tuyên bố rằng chúng hoàn toàn không trả lại bất cứ điều gì (khoảng trống trong Java và C)

Vì vậy, hiện tại không có cách nào để tuyên bố rằng bạn không trả lại bất cứ điều gì. Tôi không biết điều gì là tốt nhất trong tình huống của bạn, nhưng có lẽ tôi chỉ cần không tuyên bố loại trả lại bây giờ.
I don't know what's best in your situation, but I'd probably just go with not declaring the return type for now.

Để trả lời câu hỏi của bạn liệu sẽ có loại trả về void trong Php 7: chưa có gì đảm bảo, nhưng tôi nghĩ rằng rất có khả năng void hoặc một từ đồng nghĩa sẽ được thực hiện theo một cách nào đó.
There is no guarantee yet, but I think it is very likely that void or a synonym will be implemented in some way.

Đã trả lời ngày 22 tháng 4 năm 2015 lúc 9:20Apr 22, 2015 at 9:20

SiguzasiguzaSiguza

Phim thương hiệu vàng 18,9k649 Huy hiệu bạc77 Hàng đồng6 gold badges49 silver badges77 bronze badges

2

Loại voidReturn đã được chấp nhận cho PHP 7.1. Vì vậy, nó sẽ đến trong tương lai.

Một số ví dụ về cách nó sẽ hoạt động:

function should_return_nothing(): void { return 1; // Fatal error: A void function must not return a value } function returns_null(): void { return null; // Fatal error: A void function must not return a value } function lacks_return(): void { // valid } function returns_nothing(): void { return; // valid }

Xem RFC từ Andrea Faulds để biết thêm thông tin!

Đã trả lời ngày 12 tháng 11 năm 2015 lúc 12:28Nov 12, 2015 at 12:28

Acrobatacrobatacrobat

2.1492 Huy hiệu vàng27 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges27 silver badges35 bronze badges

2

Chỉnh sửa: Trong Php 7.1 có một loại giả void. Nó được xác định trong khoảng trống loại RFC. Dưới đây là câu trả lời trước 7.1.

Tác giả của các loại RETRY RFC tại đây. Trong Php 7.0 sẽ không có loại trả về void vì RFC không thêm nó và không có bất kỳ RFC nào khác nhắm mục tiêu Php 7.0.

Loại void có thể tồn tại trong loạt Php 7 nếu chúng tôi quyết định rằng việc thêm khóa/từ dành riêng mới là ổn cho các bản phát hành nhỏ mặc dù chúng sẽ phá vỡ mã. Điều này có phần không chắc chắn, nhưng nó đã được thực hiện trong Php 5.4 với từ khóa <?php function foo(): void { } foo(); 3.

Cá nhân, tôi không nghĩ rằng chúng ta cần void; Chúng tôi đã có <?php function foo(): void { } foo(); 5. Từ hướng dẫn:

Giá trị null đặc biệt đại diện cho một biến không có giá trị. NULL là giá trị duy nhất có thể có của loại null.

Trong PHP, một hàm không trả về bất cứ điều gì sẽ ngầm trả lại <?php function foo(): void { } foo(); 5. Điều này có nghĩa là bạn không thể thực sự không trả lại gì*. Đi theo tuyến đường <?php function foo(): void { } foo(); 5 có nghĩa là không có sự phá vỡ tương thích ngược vì <?php function foo(): void { } foo(); 5 sẽ không phải là một lớp/giao diện/tên tính trạng hợp lệ bắt đầu từ PHP 7.0 và không thêm bất kỳ khóa mới hoặc từ dành riêng nào.

*Những người quen thuộc với động cơ Zend sẽ nhận ra rằng bạn không thể trả lại gì, nhưng nếu bạn không trả lại thì không có biến nào bạn chỉ định sẽ được gán null, điều này làm cho họ tương đương về mặt logic.

Đã trả lời ngày 12 tháng 5 năm 2015 lúc 18:10May 12, 2015 at 18:10

Levi Morrisonlevi MorrisonLevi Morrison

18.8K6 Huy hiệu vàng63 Huy hiệu bạc82 Huy hiệu Đồng6 gold badges63 silver badges82 bronze badges

1

Không có loại tương đương cho khoảng trống trong PHP, trả về null; Có thể phù hợp với yêu cầu của bạn vì nó không có bất kỳ loại nào như 0 hoặc bất kỳ giá trị nào khác. Lưu ý: Void thực tế có nghĩa là không có sự trở lại.

Đã trả lời ngày 22 tháng 4 năm 2015 lúc 9:17Apr 22, 2015 at 9:17

Sanjay kumar n ssanjay kumar n sSanjay Kumar N S

4.5073 huy hiệu vàng22 Huy hiệu bạc38 Huy hiệu đồng3 gold badges22 silver badges38 bronze badges

@Benice Tôi hiểu quan điểm của bạn, dù sao tôi cũng tóm tắt việc xem xét từ Levi Morrison như một câu hỏi thực tế về tính bền vững: giới thiệu void như một loại trả lại có thể, chúng tôi phá vỡ giả định rằng loại duy nhất có thể của <?php function foo(): void { } foo(); 5 là <?php function foo(): void { } foo(); 5.

Bằng cách này, void nên được trả lại để kiểm tra loại <?php function foo(): void { } foo(); 5, thay đổi các ràng buộc kiến ​​trúc bằng thiết kế và gây ra sự lộn xộn trong khả năng tương thích ngược.

// your choice implies this comparison should be true: gettype(null) === void;

Tôi nghĩ rằng ai đã sử dụng <?php function foo(): void { } foo(); 5 không thường xuyên trong mã của anh ta sẽ mang loại thực hiện loại void.

Đã trả lời ngày 24 tháng 3 năm 2018 lúc 1:43Mar 24, 2018 at 1:43

Yodabaryodabaryodabar

4.5311 Huy hiệu vàng31 Huy hiệu bạc36 Huy hiệu đồng1 gold badge31 silver badges36 bronze badges

Return Return Void là gì?

Trả về từ các hàm void trong C ++ Các hàm void được gọi là void vì chúng không trả lại bất cứ điều gì. Một chức năng void không thể trả về bất cứ điều gì mà câu nói này không phải lúc nào cũng đúng. Từ một hàm void, chúng ta không thể trả về bất kỳ giá trị nào, nhưng chúng ta có thể trả về một cái gì đó khác với các giá trị. Một số trong số họ giống như dưới đây.The void functions are called void because they do not return anything. “A void function cannot return anything” this statement is not always true. From a void function, we cannot return any values, but we can return something other than values. Some of them are like below.

Void có nghĩa là gì trong chức năng PHP?

Bây giờ trong các ngôn ngữ lập trình khác khi bạn chỉ định loại trả về khoảng trống, điều đó có nghĩa là bạn không thể trả lại bất cứ điều gì hoặc bạn sẽ gặp lỗi.you cannot return anything or you will get an error.

Tại sao loại trả về khoảng trống?

Loại void, trong một số ngôn ngữ lập trình có nguồn gốc từ C và Algol68, là loại trả về của một hàm trả về bình thường, nhưng không cung cấp giá trị kết quả cho người gọi của nó.Thông thường các chức năng như vậy được gọi cho các tác dụng phụ của chúng, chẳng hạn như thực hiện một số nhiệm vụ hoặc ghi vào các tham số đầu ra của chúng.does not provide a result value to its caller. Usually such functions are called for their side effects, such as performing some task or writing to their output parameters.

Lợi nhuận trong PHP là gì?

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.

Chủ đề