2012-01-23 32 views
13

@param có nghĩa là gì khi tạo lớp học? Theo như tôi hiểu nó được sử dụng để nói cho kịch bản loại datatype các biến và những gì loại giá trị một chức năng trả về, là phải không? Ví dụ:@param có nghĩa là gì trong một lớp học?

/** 
* @param string $some 
* @param array $some2 
* @return void 
*/ 

Isn't có một cách khác để làm điều đó, tôi đang nghĩ đến những thứ như: void function() { ... } hoặc một cái gì đó như thế. Và đối với các biến có thể (int) $ test;

+0

Bạn nên kiểm tra http://manual.phpdoc.org/HTMLframesConverter/default/ – Maerlyn

+0

Xem [PHPDoc] (http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg. html) để biết thêm thông tin. – Xeoncross

Trả lời

16

@param không có ý nghĩa đặc biệt trong PHP, thường được sử dụng trong nhận xét để viết tài liệu. Ví dụ bạn đã cung cấp chỉ hiển thị điều đó.

Nếu bạn sử dụng công cụ tài liệu, nó sẽ quét mã cho @param, @summary và các giá trị tương tự khác (tùy thuộc vào sự tinh tế của công cụ) để tự động tạo tài liệu có định dạng tốt cho mã.

1

PHP hoàn toàn không biết gì về nhận xét. Nó được sử dụng để mô tả các tham số mà phương thức này chỉ thực hiện để làm cho mã dễ đọc hơn và dễ hiểu hơn.

Ngoài ra, thực hành mã tốt dành để sử dụng các tên nhất định (chẳng hạn như @param), cho trình tạo tài liệu.

Một số IDE sẽ bao gồm @param và các thông tin khác trong chú giải công cụ khi sử dụng di chuột qua phương pháp có liên quan.

+1

Không hoàn toàn đúng là PHP không biết gì về bình luận.API phản chiếu của PHP có thể giải thích cụ thể các chú thích doc và một số dự án như Doctrine sử dụng chúng rất nhiều cho cấu hình meta. http://www.php.net/manual/en/intro.reflection.php – redreinard

2

Vì những người khác đã đề cập đến @param bạn đang đề cập đến là một phần của nhận xét và không có ý nghĩa về cú pháp. Nó chỉ đơn giản là để cung cấp gợi ý cho một trình tạo tài liệu. Bạn có thể tìm thêm thông tin về các chỉ thị và cú pháp được hỗ trợ bằng cách xem dự án PHPDoc.

Nói đến phần thứ hai của câu hỏi của bạn ... Theo như tôi biết, không có cách nào để chỉ định kiểu trả về trong PHP. Bạn cũng không thể ép buộc các tham số là một kiểu nguyên thủy cụ thể (chuỗi, số nguyên, v.v.).

Tuy nhiên, bạn có thể yêu cầu tham số phải là mảng, đối tượng hoặc loại đối tượng cụ thể như của PHP 5.1 trở lên.

function importArray(array $myArray) 
{ 
} 

PHP sẽ phát một lỗi nếu bạn thử và gọi phương thức này với bất kỳ thứ gì ngoài mảng.

class MyClass 
{ 
} 

function doStuff(MyClass $o) 
{ 
} 

Nếu bạn cố gắng gọi doStuff với bất kỳ đối tượng nào ngoại trừ MyClass, PHP sẽ lại phát sinh lỗi.

0

@param là một phần của nhận xét mô tả cho bạn biết loại tham số đầu vào là gì. Nó không có gì để làm với cú pháp mã. Sử dụng trình chỉnh sửa được hỗ trợ màu như Notepad ++ để dễ dàng xem mã whats và nhận xét whats.

2

Tôi biết điều này là cũ nhưng chỉ để tham khảo, câu trả lời cho phần thứ hai của câu hỏi là bây giờ, PHP7.

// this function accepts and returns an int 
function age(int $age): int{ 

    return 18; 
} 
Các vấn đề liên quan