Sự khác biệt giữa biến tĩnh và không tĩnh trong php
Ở đây, chúng tôi khai báo một phương thức tĩnh. hoan nghênh(). Sau đó, chúng ta gọi phương thức tĩnh bằng cách sử dụng tên lớp, dấu hai chấm (. ) và tên phương thức (không tạo phiên bản của lớp trước) Show PHP - Tìm hiểu thêm về các phương thức tĩnhMột lớp có thể có cả phương thức tĩnh và không tĩnh. Một phương thức tĩnh có thể được truy cập từ một phương thức trong cùng một lớp bằng cách sử dụng từ khóa Ví dụlời chào lớp học { public function __construct() { lời chào mới(); Các phương thức tĩnh cũng có thể được gọi từ các phương thức trong các lớp khác. Để làm điều này, phương thức tĩnh phải là Ví dụlời chào lớp học { class SomeOtherClass { Để gọi một phương thức tĩnh từ một lớp con, hãy sử dụng từ khóa Từ khóa Từ khóa 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 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 dò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 dò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ừ Sự khác biệt giữa các biến tĩnh và không tĩnh là gì?Các biến tĩnh được chia sẻ giữa tất cả các phiên bản của một lớp. Các biến không tĩnh dành riêng cho phiên bản đó của một lớp . Biến tĩnh giống như một biến toàn cục và có sẵn cho tất cả các phương thức. Biến không tĩnh giống như một biến cục bộ và chúng chỉ có thể được truy cập thông qua thể hiện của một lớp.
Sự khác biệt giữa phương thức tĩnh và không tĩnh trong PHP là gì?Lớp tĩnh chứa biến tĩnh và phương thức tĩnh trong khi lớp khởi tạo chứa biến không tĩnh và phương thức không tĩnh . Các chương trình có các lớp tĩnh khó kiểm tra và mở rộng trong khi các chương trình có các lớp không tĩnh cung cấp thuộc tính mở rộng và kiểm tra dễ dàng.
Biến tĩnh PHP là gì?Loại phạm vi biến cuối cùng mà tôi thảo luận được gọi là tĩnh. Ngược lại với các biến được khai báo là tham số của hàm, bị hủy khi hàm thoát, một biến tĩnh sẽ không mất giá trị khi hàm thoát và sẽ vẫn giữ giá trị đó nếu hàm được gọi lại.
Sự khác biệt giữa biến tĩnh và biến bình thường là gì?Bên trong hàm, biến thông thường bị hủy khi hàm thoát. Biến tĩnh trong hàm vẫn giữ nguyên giá trị của nó ngay cả sau khi hàm thoát . |