Làm cách nào để bạn gọi một phương thức không tĩnh của một lớp trong php bằng cách ::?
Vậy điều gì sẽ xảy ra nếu chúng tôi quyết định thêm loại chiến đấu thứ tư vào Show
Nhưng bất ngờ. Nếu chúng ta quên thêm loại mới vào Để làm điều đó, hãy tạo một hàm mới trong 1dòng 1 - 2class BattleManager{. dòng 5 - 75hàm công khai getAllBattleTypesWithDescriptions(){. dòng 78 - 82}. dòng 84 - 90} Tại đây, trả về một mảng có loại là khóa và mô tả sẽ được sử dụng trong trình đơn thả xuống làm giá trị dòng 1 - 2class BattleManager{. dòng 5 - 75public function getAllBattleTypesWithDescriptions(){return mảng(self. TYPE_NORMAL => 'Bình thường',tự. TYPE_NO_JEDI => 'Không có sức mạnh của Jedi',chính bạn. TYPE_ONLY_JEDI => 'Chỉ có sức mạnh của Jedi');}. dòng 84 - 90} Thật tuyệt vời. Tiếp theo, nếu chúng ta gọi phương thức này trong 4dòng 1 - 11$battleManager = $container->getBattleManager();. dòng 13 - 141 Bây giờ thêm dòng 1 - 11$battleManager = $container->getBattleManager();$battleTypes = $battleManager->getAllBattleTypesWithDescriptions();. dòng 14 - 141 Cuối cùng, cuộn xuống. Thay cho các giá trị được mã hóa cứng, dòng 1 - 32. dòng 34 - 58. dòng 61 - 95. dòng 99 - 122Battle Type$typeText). ?>. dòng 131 - 134 Vâng. Hãy thử một lần. Nhấp vào liên kết "Trận chiến lần nữa". Và vâng. Trình đơn thả xuống có ba giá trị giống như trước đây Đây là nơi mọi thứ trở nên thú vị. Chúng tôi đã làm cho Để biết, hãy tự hỏi mình hai câu hỏi này
Vì vậy, hãy biến phương thức này thành dòng 1 - 2class BattleManager{. dòng 5 - 75hàm tĩnh công khai getAllBattleTypesWithDescriptions(){. dòng 78 - 82}. dòng 84 - 90} Điều duy nhất thay đổi bây giờ là cách chúng ta gọi phương thức của mình. Đầu tiên, chúng ta không cần một đối tượng dòng 1 - 11$battleTypes = BattleManager. getAllBattleTypesWithDescriptions();. dòng 13 - 140 Ok, thử nó ra. Nó hoạt động Hãy nhìn xem, thứ tĩnh và không tĩnh này có thể khó khăn. Và trong rất nhiều hướng dẫn khác, bạn sẽ thấy điều này được dạy ngược lại. họ sẽ cho bạn xem nội dung tĩnh trước, vì nó dễ hơn một chút. Sau đó, họ sẽ dạy các thuộc tính và phương thức không tĩnh Nhưng đoán xem. đó không phải là cách các lập trình viên giỏi viết mã trong thế giới thực. họ làm cho hầu hết mọi thứ không tĩnh. Và để bắt đầu, tôi muốn các bạn cũng làm cho mọi thứ không tĩnh. Sau đó, khi bạn cảm thấy thoải mái hơn, bạn sẽ bắt đầu thấy các tình huống khác nhau mà ở đó bạn có thể làm cho một số thứ tĩnh. Thực ra việc thay đổi mọi thứ từ Trong hướng dẫn này, chúng ta sẽ tìm hiểu thêm về các phương thức tĩnh trong PHP OOP. Chúng ta sẽ thảo luận về ý nghĩa của các phương thức tĩnh, khi nào sử dụng chúng, cú pháp và sự khác biệt giữa các phương thức tĩnh và không tĩnh Các phương thức tĩnh trong PHP là gì?
Cú pháp của phương thức tĩnh trong PHP
Cú pháp gọi phương thức tĩnh
Ví dụ
Gọi phương thức tĩnh bên trong lớp – PHP
Gọi phương thức tĩnh bên trong một lớp khác – PHPRất thú vị khi sử dụng trường hợp của các phương thức tĩnh, chúng ta có thể gọi một phương thức tĩnh công khai bên trong một lớp khác. Hãy nhớ rằng, nó phải là một phương thức tĩnh công khai
Gọi một phương thức tĩnh trong lớp con – PHPTrong trường hợp thừa kế, chúng ta có thể gọi phương thức tĩnh của lớp cha bên trong lớp con bằng cách sử dụng từ khóa cha. Nhìn vào ví dụ dưới đây
Ghi chú. Như chúng ta đã đề cập trong phần trước, việc gọi một phương thức tĩnh bên trong một lớp khác yêu cầu nó phải công khai. Nhưng trong trường hợp gọi phương thức tĩnh của lớp cha (kế thừa), công cụ sửa đổi truy cập phương thức tĩnh có thể là công khai hoặc được bảo vệ Cách gọi phương thức không tĩnh trong php?Trong PHP 5, gọi các phương thức không tĩnh sẽ tạo ra cảnh báo E_STRICT một cách tĩnh . Trong PHP 7, việc gọi các phương thức không tĩnh một cách tĩnh không được dùng nữa và sẽ tạo cảnh báo E_DEPRECATED. Xem các phương thức tĩnh (php. mạng) để biết chi tiết. Trong ví dụ sau, phương thức foo() được gọi là động trong khi thực tế nó là tĩnh.
Làm cách nào để gọi một phương thức không tĩnh từ một lớp khác trong php?php'; . }
Cách gọi phương thức không tĩnh trong phương thức tĩnh php?Nhưng khi chúng ta thử gọi hàm Không tĩnh i. e, Phương thức kiểm tra() bên trong hàm tĩnh nó báo lỗi - “Cần có tham chiếu đối tượng cho trường không tĩnh, thành viên hoặc Thuộc tính 'Chương trình. Phương pháp kiểm tra()". Vì vậy, chúng ta cần tạo một thể hiện của lớp để gọi phương thức không tĩnh .
Chúng ta có thể gọi phương thức không tĩnh với tên lớp không?Mỗi đối tượng của lớp có bản sao riêng của các thành viên dữ liệu Không tĩnh. Chúng có thể được truy cập bằng cách sử dụng tên lớp hoặc đối tượng . Chúng thường được truy cập thông qua một đối tượng của lớp. Các phương thức tĩnh có thể được gọi mà không cần đối tượng hoặc đối tượng của lớp đó. |