sách gpt4 ăn đã đi

Giới thiệu chi tiết cách sử dụng trait trong PHP

In lại Tác giả: qq735679552 Thời gian cập nhật: 28-09-2022 22:32:09 24 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này giới thiệu chi tiết về cách sử dụng các trait trong PHP, được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm đến bài viết này thì nhớ like nhé.

Nói một cách đơn giản hơn, từ khóa đặc điểm được sử dụng trong PHP để giải quyết vấn đề một lớp muốn tích hợp các thuộc tính và phương thức của một lớp cơ sở, nhưng cũng muốn có các phương thức của các lớp cơ sở khác và các đặc điểm thường được sử dụng kết hợp. với việc 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
23
24
   đặc điểm Drive {
     công cộng $tênxe = 'đặc điểm' ;
     công cộng chức năng lái xe() {
       tiếng vọng "đang lái {$this->carName}\n" ;
     }
   }
   lớp học Người {
     công cộng chức năng ăn() {
       tiếng vọng "ăn\n" ;
     }
   }
   lớp học Học sinh mở rộng Người {
     sử dụng Lái xe;
     công cộng chức năng học() {
       tiếng vọng "nghiên cứu\n" ;
     }
   }
   $sinh viên = mới Học sinh();
   $sinh viên ->học();
   $sinh viên ->ăn();
   $sinh viên ->lái xe();
 
?>

Đầu ra như sau:

?
1
2
3
học
ăn
đặc điểm lái xe

Trong ví dụ trên, lớp Sinh viên có phương thức ăn bằng cách kế thừa Person, phương thức lái xe và thuộc tính carName bằng cách kết hợp Drive.

Nếu có một thuộc tính hoặc phương thức có cùng tên trong Trait, lớp cơ sở và lớp này thì cái nào cuối cùng sẽ được giữ lại?

?
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
   đặc điểm Drive {
     công cộng chức năng Xin chào() {
       tiếng vọng "Xin chào lái xe\n" ;
     }
     công cộng chức năng lái xe() {
       tiếng vọng "lái xe từ ổ đĩa\n" ;
     }
   }
   lớp học Người {
     công cộng chức năng Xin chào() {
       tiếng vọng "Xin chào người\n" ;
     }
     công cộng chức năng lái xe() {
       tiếng vọng "lái xe từ người\n" ;
     }
   }
   lớp học Học sinh mở rộng Người {
     sử dụng Lái xe;
     công cộng chức năng Xin chào() {
       tiếng vọng "Xin chào sinh viên\n" ;
     }
   }
   $sinh viên = mới Học sinh();
   $sinh viên ->xin chào();
   $sinh viên ->lái xe();
?>

Đầu ra như sau:

?
1
2
Xin chào sinh viên
lái xe từ ổ đĩa

Do đó, người ta kết luận rằng khi một phương thức hoặc thuộc tính có cùng tên, phương thức trong lớp hiện tại sẽ ghi đè phương thức của đặc điểm và phương thức của đặc điểm sẽ ghi đè phương thức trong lớp cơ sở.

Nếu bạn muốn kết hợp nhiều đặc điểm, hãy phân tách các tên đặc điểm bằng dấu phẩy:

?
1
sử dụng Trait1, Trait2;

Điều gì xảy ra nếu nhiều Đặc điểm chứa các phương thức hoặc thuộc tính có cùng tên? Câu trả lời là khi nhiều Trait kết hợp chứa các thuộc tính hoặc phương thức có cùng tên, chúng cần được khai báo rõ ràng để giải quyết xung đột, nếu không sẽ xảy ra lỗi nghiêm trọng.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
đặc điểm Đặc điểm 1 {
   công cộng chức năng Xin chào() {
     tiếng vọng "Đặc điểm1::xin chào\n" ;
   }
   công cộng chức năng CHÀO() {
     tiếng vọng "Đặc điểm1::hi\n" ;
   }
}
đặc điểm Đặc điểm 2 {
   công cộng chức năng Xin chào() {
     tiếng vọng "Đặc điểm2::xin chào\n" ;
   }
   công cộng chức năng CHÀO() {
     tiếng vọng "Đặc điểm2::hi\n" ;
   }
}
lớp học Lớp 1 {
   sử dụng Đặc điểm1, Đặc điểm2;
}
?>

Đầu ra như sau:

  。

Sao chép mã Mã này như sau:

Lỗi nghiêm trọng của PHP: Phương thức trait hello chưa được áp dụng vì có xung đột với các phương thức trait khác trên Class1 trong ~/php54/trait_3.php ở dòng 20

  。

Sử dụng các toán tử thay thế và as để giải quyết xung đột. Thay vào đó sử dụng một phương thức để thay thế một phương thức khác, trong khi as cung cấp bí danh cho phương thức đó. Vui lòng xem mã để biết cách sử dụng cụ thể:

?
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
đặc điểm Đặc điểm 1 {
   công cộng chức năng Xin chào() {
     tiếng vọng "Đặc điểm1::xin chào\n" ;
   }
   công cộng chức năng CHÀO() {
     tiếng vọng "Đặc điểm1::hi\n" ;
   }
}
đặc điểm Đặc điểm 2 {
   công cộng chức năng Xin chào() {
     tiếng vọng "Đặc điểm2::xin chào\n" ;
   }
   công cộng chức năng CHÀO() {
     tiếng vọng "Đặc điểm2::hi\n" ;
   }
}
lớp học Lớp 1 {
   sử dụng Đặc điểm 1, Đặc điểm 2 {
     Trait2::hello thay vì Trait1;
     Trait1::hi thay vì Trait2;
   }
}
lớp học Lớp 2 {
   sử dụng Đặc điểm 1, Đặc điểm 2 {
     Trait2::hello thay vì Trait1;
     Trait1::hi thay vì Trait2;
     Đặc điểm2::vi BẰNG BẰNG;
     Trait1::xin chào BẰNG Haha;
   }
}
$Obj1 = mới Lớp 1();
$Obj1 ->xin chào();
$Obj1 ->xin chào();
tiếng vọng "\N" ;
$Obj2 = mới Lớp 2();
$Obj2 ->xin chào();
$Obj2 ->xin chào();
$Obj2 ->này();
$Obj2 ->hehe();
?>

Đầu ra như sau:

?
1
2
3
4
5
6
7
Trait2::xin chào
Đặc điểm 1::xin chào
 
Trait2::xin chào
Đặc điểm 1::xin chào
Đặc điểm2::vi
Trait1::xin chào

Từ khóa as còn có một công dụng khác, đó là sửa đổi quyền kiểm soát truy cập của một phương thức:

Các đặc điểm cũng có thể được kết hợp với các đặc điểm hỗ trợ các phương thức trừu tượng, thuộc tính tĩnh và phương thức tĩnh như sau:

?
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
đặc điểm Xin chào {
   công cộng chức năng sayXin chào() {
     tiếng vọng "Xin chào\n" ;
   }
}
đặc điểm Thế giới {
   sử dụng Xin chào;
   công cộng chức năng nóiWorld() {
     tiếng vọng "Thế giới\n" ;
   }
   tóm tắt công cộng chức năng lấy Thế giới();
   công cộng chức năng tăng() {
     tĩnh $c = 0;
     $c = $c + 1;
     tiếng vọng "$c\n" ;
   }
   công cộng tĩnh chức năng làmCái gì đó() {
     tiếng vọng "Đang làm gì đó\n" ;
   }
}
lớp học Xin chào thế giới {
   sử dụng Thế giới;
   công cộng chức năng lấy Thế giới() {
     trở lại 'lấy thế giới' ;
   }
}
$Đối tượng = mới Xin chào thế giới();
$Đối tượng ->nóiXin chào();
$Đối tượng ->nóiThế Giới();
tiếng vọng $Đối tượng ->getWorld() . "\N" ;
Xin chào thế giới::doSomething();
$Đối tượng ->tăng();
$Đối tượng ->tăng();
?>

Đầu ra như sau:

?
1
2
3
4
5
6
Xin chào
Thế giới
nhận được thế giới
Làm gì đó
1
2

Trên đây là toàn bộ nội dung bài viết này hi vọng nó sẽ giúp ích cho việc học của mọi người và cũng mong mọi người ủng hộ mình.

Liên kết gốc: http://www.jianshu.com/p/36e854731341.

Cuối cùng, bài viết giới thiệu chi tiết về cách sử dụng các đặc điểm trong PHP kết thúc tại đây. Nếu bạn muốn biết thêm về phần giới thiệu chi tiết về việc sử dụng các đặc điểm trong PHP, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. bạn sẽ hỗ trợ nó trong tương lai blog của tôi! .

24 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress