2012-01-09 25 views
7

Tôi đã tự hỏi lợi ích của việc sử dụng một số điện thoại public static function hoặc private static function thay vì chỉ đơn giản là public function hoặc private function?PHP | Tại sao tôi nên sử dụng chức năng tĩnh tĩnh/riêng công cộng thay vì chức năng công cộng/riêng tư?

+0

Đây không phải là một câu hỏi về lợi thế hay bất lợi. Ngoài ra, bạn đã tìm kiếm trang web chưa? – BoltClock

+4

bạn không cần tạo đối tượng để sử dụng các phương thức tĩnh..Và có rất nhiều câu hỏi liên quan! – meze

+0

Có, tôi đã đọc một số từ trang PHP Manual, nhưng dường như tôi không hiểu tại sao sử dụng các phương thức tĩnh, tôi chỉ hiểu rằng thay vì gọi hàm public như thế này '->' Tôi có thể làm điều này '::' và một số thông tin khác tôi đọc về phương pháp tĩnh trên trang web thủ công php ... – Roland

Trả lời

22

Phương thức "bình thường" (thường được gọi là phương pháp dụ) được gọi trên một phiên bản của lớp mà chúng được xác định. Phương thức này sẽ luôn có quyền truy cập đối tượng của nó thông qua $this và do đó nó có thể làm việc với dữ liệu được thực hiện bởi đối tượng đó (và thực sự sửa đổi nó). Đây là một khía cạnh cốt lõi của lập trình hướng đối tượng, và đó là những gì làm cho một lớp học nhiều hơn chỉ là một bó dữ liệu.

Các cuộc gọi đến phương pháp tĩnh, mặt khác, không được liên kết với một đối tượng cụ thể. Chúng hoạt động giống như các hàm bình thường trong khía cạnh này; thực sự sự khác biệt duy nhất là chúng có thể được đánh dấu là private và cũng có quyền truy cập vào các phương thức và biến riêng tư trên các cá thể của lớp của chúng. Các hàm tĩnh thực sự chỉ là phần mở rộng của lập trình thủ tục.

Ví dụ, một phương pháp dụ được gọi vào một đối tượng:

$object = new MyClass(); 
$result = $object->myInstanceMethod(); 

Một phương pháp tĩnh được gọi vào chính lớp:

$result = MyClass::myStaticMethod(); 
Các vấn đề liên quan