2009-08-02 53 views
59

Nếu tôi không trả lời một cách rõ ràng, hàm php sẽ trả về chính xác những gì?hàm php trả về theo mặc định là gì?

function foo() {} 
  1. kiểu gì nó là gì?

  2. Giá trị là gì?

  3. Làm cách nào để kiểm tra chính xác với ===?

  4. Thay đổi này từ php4 sang php5 chưa?

  5. Có một sự khác biệt giữa function foo() {}function foo() { return; }

(Tôi không yêu cầu làm thế nào để kiểm tra nó như if (foo() !=0) ...)

+1

Xem http://php.net/manual/en/functions.returning-values.php cho tài liệu chính thức – Sophivorus

Trả lời

85
  1. null
  2. null
  3. if(foo() === null)
  4. -
  5. Không.

Bạn có thể thử nó ra bằng cách thực hiện:

$x = foo(); 
var_dump($x); 
32

Không trả lại một giá trị từ một hàm PHP có ngữ nghĩa giống như một hàm trả về null.

function foo() {} 

$x=foo(); 

echo gettype($x)."\n"; 
echo isset($x)?"true\n":"false\n"; 
echo is_null($x)?"true\n":"false\n"; 

chí này ra

NULL 
false 
true 

Bạn nhận được kết quả tương tự nếu foo được thay thế bằng

function foo() {return null;} 

Hiện chưa có sự thay đổi trong hành vi này từ php4 để php5 để php7 (I chỉ cần tested để chắc chắn!)

+0

+1 nhưng tôi ước tôi có thể +2, đây là câu trả lời hoàn chỉnh hơn (bao gồm câu hỏi số 4 liên quan đến thay đổi hành vi giữa các phiên bản php) – Jonathan

Các vấn đề liên quan