(Chỉnh sửa) Ok các câu hỏi và ví dụ về những gì bạn đang cố gắng đạt được là khó hiểu. Có vẻ như từ ví dụ của bạn, bạn đang cố gắng DEFINE một lớp bên trong một lớp khác.
Tên chính xác cho điều này là NESTED CLASS và không thể thực hiện trong PHP. Vì vậy, ví dụ của bạn câu trả lời là "KHÔNG". Không phải trong PHP anyway. Các ngôn ngữ khác sẽ cho phép "các lớp lồng nhau". Java là một ví dụ.
Ví dụ này sẽ KHÔNG làm việc trong PHP
class outer_class{
class inner_class{
...
}
...
}
Bây giờ câu hỏi hỏi là tạo ra một thể hiện của một lớp trong lớp khác.
Để câu trả lời này là "CÓ", bạn có thể CÀI ĐẶT một "đối tượng" bên trong "lớp". Chúng tôi làm cả ngày.
class simple_class{
protected $instanceOfOtherClass;
public function instanciateObject_KeepingAReferenceToIt(){
// create an instance of OtherClass and associate it to $this->instanceOfOtherClass
$this->instanceOfOtherClass = new OtherClass();
}
public function instanciateObject_Without_KeepingAReferenceToIt(){
// create an instance of OtherClass and return it
return new OtherClass();
}
}
Một lớp thậm chí có thể tự khởi tạo. Đó là những gì các singleton nổi tiếng và nhiều người khác Creational patterns. Đáng buồn là một số người tin rằng biết về dependency injection có nghĩa là họ sẽ không bao giờ gọi NEW trong một phương thức nữa. SAI RỒI.
Nó giúp hiểu sự khác biệt giữa một lớp và một đối tượng. A class là mẫu mã chương trình có thể mở rộng để tạo đối tượng. An object đề cập đến một trường hợp cụ thể của một lớp học.
Nguồn
2017-07-06 16:53:12
Tôi khuyên bạn nên sử dụng 'require' thay vì' include'. –
Điều này cũng giống như một tình huống tốt cho việc sử dụng mẫu thiết kế tiêm phụ thuộc. – Ejaz
@ rink.attendant.6 'require_once' thậm chí còn tốt hơn: D –