Chỉnh sửa: Vâng, bạn có thể gõ-gợi ý với mảng, vì vậy thay đổi nội dung câu trả lời của tôi và thay đổi cho phù hợp.
Điều bạn muốn làm được gọi là type-hinting. Bạn không thể nhập các loại dữ liệu cơ bản gợi ý, chẳng hạn như int
, string
, bool
. Bạn có thể gõ-gợi ý với array
hoặc các đối tượng và giao diện:
function example_hinted1(array $arr) {
}
function example_hinted2(User $user) {
}
Calling example_hinted1(5)
sẽ tạo ra một lỗi nghiêm trọng PHP (không phải là một ngoại lệ), nhưng gọi đó là đi qua một mảng là hoàn toàn ok.
Nếu bạn cần phải chắc chắn rằng một số lập luận cho một chức năng là từ một loại cơ bản bạn có thể mô phỏng hành vi này với mã bên trong hàm của bạn:
function example($number) {
if (!is_int($number) {
throw new Exception("You must pass an integer to ".__FUNCTION__."()");
}
// rest of your function
}
Vì vậy, những đoạn sẽ làm việc:
example(1);
$b = 5 + 8;
example($b);
trong khi những sẽ ném một ngoại lệ:
example('foo');
example(array(5, 6));
example(new User());
Nguồn
2012-05-02 13:19:27
Không cho tất cả, nhưng đối với mảng và các loại (lớp/interfaces) . Bạn thấy rằng tài liệu trong hướng dẫn sử dụng. Hãy làm bài tập ở nhà của bạn trước và nhìn vào đó, nó trả lời câu hỏi của bạn với nhiều chi tiết hơn. – hakre
http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/#functions – maialithar