Giả sử chúng ta có một lớp tên là Fruit. Một Trái cây có thể có các thuộc tính như tên, màu sắc, trọng lượng, v.v. Chúng ta có thể định nghĩa các biến như $name, $color và $weight để giữ các giá trị của các thuộc tính này
Khi các đối tượng riêng lẻ [táo, chuối, v.v.]. ] được tạo ra, chúng kế thừa tất cả các thuộc tính và hành vi từ lớp, nhưng mỗi đối tượng sẽ có các giá trị khác nhau cho các thuộc tính
Xác định một lớp
Một lớp được định nghĩa bằng cách sử dụng từ khóa class
, theo sau là tên của lớp và một cặp dấu ngoặc nhọn [{}]. Tất cả các thuộc tính và phương thức của nó đi vào bên trong dấu ngoặc nhọn
cú pháp
lớp trái cây {
// mã ở đây
}
?>
Dưới đây chúng ta khai báo một lớp có tên là Fruit bao gồm hai thuộc tính [$name và $color] và hai phương thức set_name[] và get_name[] để thiết lập và lấy thuộc tính $name
lớp trái cây {
// Của cải
tên $ công khai;
$color công khai;
// Phương thức
hàm set_name[$name] {
$this->name = $name;
}
hàm get_name[] {
trả về $this->name;
}
}
?>
Ghi chú. Trong một lớp, các biến được gọi là thuộc tính và hàm được gọi là phương thức
Xác định đối tượng
Các lớp không là gì nếu không có đối tượng. Chúng ta có thể tạo nhiều đối tượng từ một lớp. Mỗi đối tượng có tất cả các thuộc tính và phương thức được định nghĩa trong lớp, nhưng chúng sẽ có các giá trị thuộc tính khác nhau
Các đối tượng của một lớp được tạo bằng từ khóa new
Trong ví dụ dưới đây, $apple và $banana là các thể hiện của lớp Fruit
Thí dụ
lớp trái cây {
// Của cải
tên $ công khai;
$color công khai;
// Phương thức
hàm set_name[$name] {
$this->name = $name;
}
hàm get_name[] {
trả về $this->name;
}
}
$apple = trái cây mới[];
$ chuối = trái cây mới[];
$apple->set_name['Apple'];
$banana->set_name['Banana'];
tiếng vang $apple->get_name[];
tiếng vang"
“;
echo $banana->get_name[];
?>
Trong ví dụ bên dưới, chúng tôi thêm hai phương thức nữa vào lớp Fruit, để thiết lập và nhận thuộc tính $color
class foo {
function name[]
{
echo "My name is " , get_class[$this] , "\n";
}
}
// create an object
$bar = new foo[];
// external call
echo "Its name is " , get_class[$bar] , "\n";
// internal call
$bar->name[];
?>
Chúng ta có thể lấy tên lớp không gian tên đủ điều kiện của một đối tượng bằng cách sử dụng hàm ________ 39 _______. Giả sử rằng lớp đối tượng của chúng ta có ít nhất một không gian tên. Nếu chúng ta chỉ muốn lấy tên lớp, chúng ta có thể sử dụng lớp phản chiếu để lấy tên viết tắt của lớp
>>> get_class[$obj];
=> "App\Models\Project"
>>> [new \ReflectionClass[$obj]]->getShortName[];
=> "Project"
Một tùy chọn khác là thực sự lấy tên lớp được đặt tên đủ điều kiện của đối tượng và lấy tên lớp thông qua thao tác chuỗi
>>> end[explode['\\', get_class[$obj]]];
=> "Project"
Xin lưu ý rằng chúng ta cần thoát khỏi dấu gạch chéo ngược
Hướng dẫn này sẽ thảo luận về cách lấy tên lớp PHP với độ phân giải tên lớp, hằng số PHP
YourNameSpace\HelloClassName
2 và phương thức YourNameSpace\HelloClassName
3. Bạn sẽ học cách sử dụng nó để phân giải tên lớp trong và ngoài lớpSử dụng Độ phân giải tên lớp để lấy tên lớp trong PHP
Bạn có thể lấy tên lớp thông qua độ phân giải tên lớp khi bạn có một không gian tên trong mã của mình. Kết quả là Tên Lớp Đủ Điều kiện [FQCN]
Tính năng này có sẵn trong PHP là
YourNameSpace\HelloClassName
4. Nó rất hữu ích khi bạn có một không gian tên trong PHP của mìnhTrong ví dụ mã sau, phân giải tên lớp thông qua
YourNameSpace\HelloClassName
4 sẽ trả về tên lớp của lớp được liên kết
đầu ra
YourNameSpace\HelloClassName
Nếu bạn muốn sử dụng tính năng này trong phương thức lớp, bạn có thể lấy tên lớp thông qua phương thức tĩnh. Bạn sẽ viết cái này là
YourNameSpace\HelloClassName
6Ví dụ mã tiếp theo cho thấy cách lấy tên lớp trong phương thức lớp
getClassName[];
?>
đầu ra
YourNameSpace\HelloClassName
Sử dụng hằng số YourNameSpace\HelloClassName
2 để lấy tên lớp trong PHP
YourNameSpace\HelloClassName
Hằng số
YourNameSpace\HelloClassName
2 là một phần của hằng số được xác định trước trong PHP. Bạn có thể sử dụng nó trong một lớp để lấy tên lớpĐoạn mã sau sẽ lấy tên lớp thông qua hằng số
YourNameSpace\HelloClassName
2HelloName[];
?>
đầu ra
Sử dụng hàm YourNameSpace\HelloClassName
3 để lấy tên lớp trong PHP
YourNameSpace\HelloClassName
PHP cung cấp một hàm
YourNameSpace\HelloClassName
3. Hàm này sẽ trả về tên lớp. Bạn có thể sử dụng nó trong lập trình thủ tục và hướng đối tượng. Đầu tiên, chúng ta sẽ xem xét phong cách thủ tụcKhối mã tiếp theo định nghĩa một lớp với một chức năng duy nhất. Hàm bên trong lớp sẽ trả về tên lớp khi đối số của nó là từ khóa
getClassName[];
?>
2Để lấy tên lớp, bạn tạo một đối tượng từ lớp;
class_name[];
// Also, you can get the class name
// via an external call
// echo get_class[$new_hello_object];
?>
đầu ra
Lúc đầu, đối với kiểu OOP, bạn có thể trả về hàm
YourNameSpace\HelloClassName
3 từ một lớp tĩnh
đầu ra
Phương pháp này có những hạn chế của nó bởi vì khi bạn mở rộng lớp, lớp mở rộng sẽ trả về tên của lớp cha chứ không phải lớp mở rộng. Để giải quyết vấn đề này, bạn có thể sử dụng
getClassName[];
?>
5Hàm
getClassName[];
?>
6 dựa trên liên kết tĩnh muộn. Với chức năng này, PHP sẽ trả về tên của lớp gọi. Nó giải quyết tình huống lớp mở rộng trả về tên của lớp cha chứ không phải tên của chính nó
đầu ra
Hello class name: Hello
Extended Hello class name: ExtendHello
Extended Hello parent class name: Hello
Sử dụng Lớp phản chiếu để lấy tên lớp trong PHP
Reflection Class là một cách ngắn gọn để lấy tên lớp trong PHP. Bạn tạo một lớp;
Lớp Reflection nên đặt đối số của nó thành
getClassName[];
?>
7. Sau đó, bạn có thể lấy tên lớp thông qua phương thức getClassName[];
?>
8 có sẵn với lớp ReflectiongetShortName[];
}
}
// Create a new class name
$hello_class_name = new Hello[];
// Get the class name
echo $hello_class_name->HelloClassName[];
?>
đầu ra
Sử dụng getClassName[];
?>
9 trên đối tượng để lấy tên lớp trong PHP
getClassName[];
?>
Tính năng
getClassName[];
?>
9 hoạt động trên các lớp trước PHP 8. Kể từ PHP, khi bạn tạo một đối tượng từ một lớp, bạn có thể lấy tên lớp từ đối tượng đã tạo bằng getClassName[];
?>
9