Tôi phải chỉnh sửa câu trả lời của mình vì một số điều tôi đã học được gần đây.
Sử dụng @return void
thay vì @return null
có một ý nghĩa rất đặc biệt, hãy xem xét hai ví dụ sau về mã PHP.
<?php
function return_never() {
echo "foo";
}
function return_sometimes() {
if ($this->condition()) {
return "foo";
}
}
Trong ví dụ đầu tiên, PHP thực sự sẽ trả về NULL
, vì PHP luôn trả về NULL
. Nhưng giá trị trả về không có ích gì cho người gọi vì nó không nói gì về những gì hàm đã làm. IDE có thể sử dụng thông tin dạng văn bản @return void
để chỉ ra cho nhà phát triển biết rằng giá trị trả về được sử dụng không phục vụ mục đích nào.
<?php
$foo1 = return_never();
$foo2 = return_sometimes();
Lần gọi đầu tiên là vô nghĩa vì biến sẽ luôn chứa NULL
, lệnh thứ hai có thể thực sự chứa một cái gì đó. Điều này thậm chí còn trở nên thú vị hơn nếu chúng ta đặt các lời gọi hàm vào một điều kiện.
<?php
if (($foo1 = return_never())) {
var_dump($foo1);
}
if (($foo2 = return_sometimes())) {
var_dump($foo2);
}
Như bạn thấy, @return void
có các trường hợp sử dụng của nó và nên được sử dụng nếu có.
Cũng lưu ý rằng nó sẽ là một phần của chuẩn PHP PSR-5 sắp tới. [1]
[1] http://www.php-fig.org/psr/
void
và đặt nó vào chữ ký phương thức trong tài liệu.