Từ khóa nào được sử dụng để tạo hàm tạo trong PHP?
Tôi cho rằng bạn đã quen thuộc với các khái niệm và thuật ngữ Lập trình hướng đối tượng (OOP). Nếu không, hãy đọc "Java OOP" hoặc "C++ OOP" Show Bắt đầu bằng ví dụHãy bắt đầu với các ví dụ trên
Ví dụ. Lớp MyCircleChúng ta sẽ bắt đầu với một lớp tên là 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235, mô hình một đường tròn có bán kính cụ thể, như thể hiện trong sơ đồ lớp sau MyCircle. phpĐịnh nghĩa của lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 MyCircleTest. phpLái thử cho hạng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Bạn có thể chạy chương trình thông qua PHP CLI (Giao diện dòng lệnh) $ php MyCircleTest.php Các kết quả đầu ra dự kiến là Ví dụ. Lớp MyTimeLớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238 mô hình hóa một thể hiện thời gian của giờ, phút và giây, như thể hiện trong sơ đồ lớp sau Thời gian của tôi. phpĐịnh nghĩa lớp cho lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238________số 8_______ MyTimeTest. phpLái thử cho hạng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 238 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 đầu ra là Cách hoạt động của OOP trong OOPXác định một lớpMột lớp bao gồm các biến thành viên và hàm. Để xác định một lớp, sử dụng từ khóa $ php MyCircleTest.php1, như sau class { memberVariables; memberFunctions; } Hàm tạo __construct()Constructor là một chức năng đặc biệt gọi là $ php MyCircleTest.php2. Trình xây dựng được sử dụng để xây dựng một thể hiện và khởi tạo các biến thể hiện. Để xây dựng một thể hiện của một lớp, bạn cần gọi hàm tạo thông qua toán tử $ php MyCircleTest.php3 (như minh họa trong trình điều khiển thử nghiệm). Hàm tạo không trả về bất cứ thứ gì, do đó, sẽ không có câu lệnh $ php MyCircleTest.php4 bên trong hàm tạo public function __construct( arguments ) { body; } PHP KHÔNG hỗ trợ nạp chồng hàm (không giống như C++ và Java). Nói cách khác, chỉ có một phiên bản của hàm tạo. Tuy nhiên, trong PHP, bạn có thể cung cấp giá trị mặc định cho các tham số của hàm, bao gồm cả hàm tạo. Theo cách này, hàm tạo có thể được gọi với các đối số khác nhau. Ví dụ, PHP không cung cấp hàm tạo mặc định không có đối số (không có đối số) (không giống như Java). Bạn cần xác định rõ ràng hàm tạo, nếu được yêu cầu Hàm hủy __destroy()Tương tự, bạn có thể định nghĩa hàm hủy có tên là $ php MyCircleTest.php5 cho một lớp. Hàm hủy sẽ không mang bất kỳ tham số nào. Nó sẽ được chạy trước khi phiên bản bị hủy (hoặc bị hủy bỏ). Hàm hủy không được sử dụng phổ biến Từ kết quả của các ví dụ trên, có thể thấy rằng hàm hủy được gọi trên tất cả các đối tượng khi đến cuối tệp, trước khi chương trình thoát. Để kích hoạt hàm hủy một cách rõ ràng, bạn có thể gọi $ php MyCircleTest.php6 trên một đối tượng. Ví dụ, Cấp phát một thực thể - Toán tử mớiĐể phân bổ một thể hiện của một lớp, hãy sử dụng toán tử $ php MyCircleTest.php3 để gọi một hàm tạo, ở dạng $ php MyCircleTest.php8 Truy cập Thành viên - Thành viên của Nhà điều hành (->)Để truy cập các biến/hàm thành viên, hãy sử dụng toán tử thành viên ( $ php MyCircleTest.php9), ở dạng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1170. Ví dụ, $này1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1171 đề cập đến trường hợp hiện tại. Để tham chiếu một biến/hàm thành viên TRONG định nghĩa lớp, bạn PHẢI đặt trước 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1171, e. g. , 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1173, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1174. Hãy lưu ý rằng bạn không thể bỏ qua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1171 (không giống như Java) Công cụ sửa đổi kiểm soát truy cập - công khai, riêng tư và được bảo vệChúng ta có thể sử dụng công cụ sửa đổi kiểm soát truy cập để hạn chế quyền truy cập vào một biến/hàm thành viên. PHP hỗ trợ các công cụ sửa đổi kiểm soát truy cập này cho các biến và hàm thành viên
Getters và SettersGetters là setters được sử dụng để truy cập và biến đổi các biến thành viên riêng tư, như trong các ví dụ trên Một thực tế PHP phổ biến là sử dụng cùng một chức năng cho getter kiêm setter, được phân biệt bởi đối số của nó. Ví dụ, __toString()1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1176 là một trong những phương thức được gọi là ma thuật, sẽ trả về một chuỗi biểu diễn của phiên bản hiện tại. Nó được gọi ngầm khi đối tượng được coi là một chuỗi. Ví dụ, Hãy lưu ý rằng nếu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1176 không được xác định, " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1178" sẽ gây ra lỗi thời gian chạy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1176 tương tự như 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 360 trong Java. Tuy nhiên, không giống như các lớp Java luôn kế thừa một 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 360 từ lớp cha gốc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 362, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1176 trong PHP phải được định nghĩa rõ ràng cho mỗi lớp __LỚP HỌC__1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 364 là một trong những hằng số ma thuật được gọi là trong PHP, giữ tên lớp trong chuỗi DocBlock (hoặc PhpDoc) Nhận xétCác nhận xét kèm theo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 365 được gọi là "DocBlock" hoặc "PhpDoc", có thể được trích xuất để tạo tài liệu (như JavaDoc). Bạn có thể sử dụng các đánh dấu như 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 366 và $ php MyCircleTest.php4 để nhắm mục tiêu các mô tả Xử lý ngoại lệ và thử bắt cuối cùngCác câu lệnh trong khối thử được thực hiện theo trình tự. Nếu một trong các câu lệnh đưa ra một ngoại lệ, các câu lệnh còn lại sẽ không được thực thi. Thay vào đó, việc thực thi chuyển sang khối catch. Nếu tất cả các câu lệnh trong khối try không đưa ra bất kỳ ngoại lệ nào, thì khối try sẽ hoàn thành và khối catch không được thực thi. Lưu ý rằng quá trình thực thi luôn tiếp tục sau khối try-catch, bất kể có ngoại lệ nào hay không Cấu trúc try-catch hỗ trợ xử lý lỗi/ngoại lệ một cách duyên dáng. Nếu không có try-catch, chương trình sẽ bị ngắt đột ngột khi gặp ngoại lệ. Cấu trúc try-catch cũng tách biệt logic chính và logic xử lý ngoại lệ, để cải thiện kỹ thuật phần mềm OOP kháctĩnhMột thành viên 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368 (biến hoặc hàm) thuộc về lớp, không thuộc về thể hiện. Nói cách khác, tất cả các phiên bản chia sẻ cùng một bản sao của một thành viên tĩnh Ví dụ: hãy viết lại lớp MyCircle của chúng tôi để bao gồm một biến 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368 class { memberVariables; memberFunctions; }0 để duy trì số vòng kết nối đã tạo, như thể hiện trong sơ đồ lớp sau. Lưu ý rằng các thành viên tĩnh được gạch chân trong ký hiệu UML MyCircleWithCount. php1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 MyCircleWithCountTest. php1 2 3 4 5 6 7 8 9 10 11 Các kết quả đầu ra dự kiến là Constructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Destructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Number of circles is: 2 Done. Destructed a MyCircleWithCount. Number of circles is: 1. Destructed a MyCircleWithCount. Number of circles is: 0. Bạn có thể đếm mà không có 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368 không? Hằng số - constMột biến thành viên không đổi được xác định bởi từ khóa class { memberVariables; memberFunctions; }2. Các hằng số luôn là class { memberVariables; memberFunctions; }3 và 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368, nội dung của chúng không thể sửa đổi. Không giống như các biến thông thường, các hằng số không bắt đầu bằng dấu $ ở đầu. Trong định nghĩa lớp, các hằng số có thể được tham chiếu qua class { memberVariables; memberFunctions; }5, giống như bất kỳ thành viên 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368 nào. Bên ngoài định nghĩa lớp, chúng được tham chiếu qua class { memberVariables; memberFunctions; }7. Theo quy ước, sử dụng chữ hoa cho tên hằng, e. g. , class { memberVariables; memberFunctions; }8, class { memberVariables; memberFunctions; }9 Phương pháp ma thuật và hằng sốCác phương thức ma thuật là các phương thức đặc biệt, bắt đầu bằng dấu gạch dưới kép, có thể được định nghĩa trong bất kỳ lớp nào và được thực thi thông qua chức năng PHP tích hợp. Ví dụ như,
[TODO] Ví dụ Các hằng số ma thuật ( class { memberVariables; memberFunctions; }3 và 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368), được đặt tên bằng chữ hoa và bắt đầu và kết thúc bằng hai dấu gạch dưới (không có $ ở đầu), chứa các thuộc tính chỉ đọc đặc biệt. Ví dụ như,
[TODO] Ví dụ bản thân. , cha mẹ. và tĩnhConstructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Destructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Number of circles is: 2 Done. Destructed a MyCircleWithCount. Number of circles is: 1. Destructed a MyCircleWithCount. Number of circles is: 0.0, Constructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Destructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Number of circles is: 2 Done. Destructed a MyCircleWithCount. Number of circles is: 1. Destructed a MyCircleWithCount. Number of circles is: 0.1 và Constructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Destructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Number of circles is: 2 Done. Destructed a MyCircleWithCount. Number of circles is: 1. Destructed a MyCircleWithCount. Number of circles is: 0.2 cho phép bạn truy cập các thành viên 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368 và class { memberVariables; memberFunctions; }2 ( class { memberVariables; memberFunctions; }3 và 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368) TRONG ĐỊNH NGHĨA lớp học. Constructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Destructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Number of circles is: 2 Done. Destructed a MyCircleWithCount. Number of circles is: 1. Destructed a MyCircleWithCount. Number of circles is: 0.0 đề cập đến lớp hiện tại, như được minh họa trong ví dụ trên. Constructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Destructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Number of circles is: 2 Done. Destructed a MyCircleWithCount. Number of circles is: 1. Destructed a MyCircleWithCount. Number of circles is: 0.1 đề cập đến lớp cha và Constructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Destructed a MyCircleWithCount. Number of circles is: 1. Constructed a MyCircleWithCount. Number of circles is: 2. Number of circles is: 2 Done. Destructed a MyCircleWithCount. Number of circles is: 1. Destructed a MyCircleWithCount. Number of circles is: 0.2 đề cập đến lớp hiện tại nhưng có ràng buộc muộn - điều này sẽ được thảo luận sau trong phần kế thừa Nhớ lại rằng bên ngoài định nghĩa lớp, bạn có thể truy cập thành viên class { memberVariables; memberFunctions; }3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368 và class { memberVariables; memberFunctions; }2 qua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2303 bản thân vs. $nàySử dụng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 1171 để chỉ đối tượng hiện tại. Sử dụng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2305 để chỉ lớp hiện tại. Nói cách khác, trong một định nghĩa lớp, sử dụng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2306 để tham chiếu các thành viên không thuộc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368, sử dụng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2308 cho thành viên 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 368 Nhập gợi ý cho các tham số chức năngTrong định nghĩa hàm, bạn có thể khai báo LOẠI của tham số, chẳng hạn như 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2310, tên lớp hoặc giao diện hoặc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2311. Tuy nhiên, gợi ý loại KHÔNG áp dụng cho các loại vô hướng, chẳng hạn như int hoặc string. Ví dụ, Di sảnVí dụ. Các lớp MyCircle và MyCylinderHãy minh họa sự kế thừa của lớp cha-lớp con với ví dụ sau về lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235 và lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2313 MyCircle. phpGiống như ví dụ trước Xi lanh của tôi. phpLớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2313 kế thừa từ lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235, với nhiều biến/hàm thành viên hơn 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 230 MyCylinderTest. phpLái thử cho hạng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2313 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231 Các kết quả đầu ra dự kiến là 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 232 Kế thừa hoạt động như thế nàomở rộngBạn có thể định nghĩa một lớp con kế thừa một lớp cha thông qua từ khóa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2317 bản thân và cha mẹTrong định nghĩa lớp con, bạn có thể sử dụng từ khóa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2318 ở dạng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2319 để chỉ một thành viên của lớp cha; . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2322 được gọi là toán tử phân giải phạm vi Ghi đè phương thứcLớp con có thể ghi đè phương thức kế thừa từ lớp cha bằng cách cung cấp định nghĩa riêng của nó. Ví dụ: lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2313 có thể ghi đè phương thức 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2324 kế thừa từ lớp cha 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235 như sau cuối cùngKhông thể ghi đè biến/phương thức 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2326 trong lớp con đa hìnhphương thức trừu tượng và lớp trừu tượngPhương thức 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327 là phương thức chỉ có chữ ký, không có triển khai. Một lớp chứa một hoặc nhiều phương thức 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327 là một lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327. Một lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327 không thể được khởi tạo, vì định nghĩa của nó không đầy đủ. Để sử dụng một lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327, hãy lấy một lớp con và ghi đè các phương thức 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327. Lớp con hiện đã hoàn thành và có thể được khởi tạo Ví dụ, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 233 giao diệnMột giao diện là một lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327 thuần túy, chỉ chứa các phương thức 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2327. Một giao diện được xác định bằng từ khóa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2335 (thay vì $ php MyCircleTest.php1). Để lấy một lớp con từ một giao diện, hãy sử dụng từ khóa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2337 (thay vì 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2317) Ví dụ như, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234 Hãy lưu ý rằng việc triển khai lớp trừu tượng và giao diện của PHP hoàn toàn giống với Java đặc điểmNhìn thấy OOP khácđối tượng nhân bảnPHP cung cấp từ khóa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2339 để sao chép một đối tượng, từ khóa này thực hiện sao chép bóng. Nếu phương thức ma thuật public function __construct( arguments ) { body; }3 được định nghĩa trong lớp, nó sẽ được chạy sau bản sao bóng tối __autoload()[LÀM] không gian tênBạn có thể có hai phiên bản của lớp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2341 trong chương trình của mình không? Một không gian tên (được gọi là gói trong Java) nhóm các lớp, giao diện, hàm và hằng có liên quan. Nó cố gắng
Những từ khóa này được sử dụng trong quản lý không gian tên
Xác định một không gian tênĐể xác định một không gian tên, hãy viết " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2344" làm câu lệnh ĐẦU TIÊN trong tệp PHP của bạn, đặt không gian tên "hiện tại". Ví dụ, Bạn có thể xác định nhiều không gian tên trong một tệp. Nhưng đừng làm điều đó để thực hành tốt nhất không gian toàn cầuBất kỳ thực thể nào được xác định trong không gian tên đều thuộc về không gian chung không gian tên phụPHP hỗ trợ cái gọi là không gian tên phụ, với các tên được phân tách bằng dấu gạch chéo ngược, e. g. , " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2345". Hãy lưu ý rằng không có dấu gạch chéo ngược hàng đầu Cách tốt nhất là giữ nguồn của bạn trong thư mục khớp với không gian tên. Ví dụ: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2345 sẽ được lưu trong Đường dẫn/Đến/MyProject/ZBox/ModSec Một lần nữa, hãy lưu ý rằng PHP sử dụng dấu gạch chéo ngược trong không gian tên Các thực thể tham chiếu trong không gian tênĐể tham chiếu một thực thể trong một không gian tên, bạn có thể
Để truy cập một thực thể trong một không gian tên khác bên ngoài không gian tên hiện tại, hãy sử dụng tên đủ điều kiện Để truy cập một thực thể trong không gian chung bên ngoài không gian tên hiện tại, hãy đặt tiền tố cho thực thể bằng dấu gạch chéo ngược ở đầu. Ví dụ, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2352 [TODO] Ví dụ Hằng số ma thuật __NAMESPACE__Hằng ma thuật 1 2 3 4 5 6 7 8 9 10 119 chứa tên của không gian tên hiện tại (trong chuỗi). Trong không gian chung, 1 2 3 4 5 6 7 8 9 10 119 chứa một chuỗi rỗng Nhập khẩu với "sử dụng. "Bạn có thể gọi toán tử 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2355 để nhập một lớp, một giao diện hoặc một không gian tên. Khi một thực thể được nhập, bạn có thể truy cập thực thể đó bằng tên của thực thể đó, thay vì tên đủ điều kiện. (Điều này tương tự như câu lệnh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2356 trong Java; hoặc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2357 trong C#. ) PHP5. 6 cũng hỗ trợ nhập các hàm và hằng số. Ví dụ, Bí danh với "sử dụng. BẰNG. "Hơn nữa, bạn có thể xác định bí danh ở dạng " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2358". Ví dụ, Chức năng/Hằng số quay trở lại Không gian toàn cầuMột tên lớp không đủ tiêu chuẩn được phân giải thành không gian tên hiện tại. Để sử dụng một lớp bên ngoài không gian tên hiện tại, bạn cần sử dụng tên đủ điều kiện Tên hàm và hằng số không đủ tiêu chuẩn được phân giải tương tự thành không gian tên hiện tại. Tuy nhiên, nếu không giải quyết được, hàm/hằng sẽ quay trở lại không gian chung từ khóa cho hàm tạo là gì?Trong một phương thức thể hiện hoặc một hàm tạo, đây là một tham chiếu đến đối tượng hiện tại - đối tượng có phương thức hoặc hàm tạo đang được gọi. Bạn có thể tham chiếu đến bất kỳ thành viên nào của đối tượng hiện tại từ bên trong một phương thức thể hiện hoặc một hàm tạo bằng cách sử dụng
Từ khóa nào được sử dụng để tạo đối tượng trong PHP?Các đối tượng của lớp được tạo bằng cách sử dụng từ khóa mới .
Loại hàm tạo trong PHP là gì?Một hàm tạo có thể có hoặc không có đối số. Hàm tạo có đối số được gọi là hàm tạo có tham số hóa và hàm tạo không có đối số được gọi là hàm tạo không có đối số .
Từ khóa mới trong PHP là gì?Từ khóa new được dùng để tạo một đối tượng từ một lớp . |