cuốn sách gpt4 ai đã làm

Lớp PHP đã tìm thấy tệp Lớp nhưng không thể tìm thấy Lớp trong tệp

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 05:46:02 33 4
mua khóa gpt4 Nike

Tôi có một siêu lớp trừu tượng được định nghĩa trong một tệp và một lớp con trong một tệp khác. Tôi cần tệp siêu lớp và báo cáo theo dõi ngăn xếp để tìm tệp chứa nó.

Tuy nhiên, khi đến dòng "mở rộng", nó sẽ trả về lỗi:Lỗi nghiêm trọng: Không tìm thấy lớp 'HTMLBuilder' trong View/Markup/HTML/HTML4.01/HTML4_01Builder.php trên dòng 7.

Vừa rồi tôi đã làm việc này với một cây lớp khác sử dụng các nhà máy. Tôi vừa thêm lớp xây dựng giữa nhà máy và người tiêu dùng. Lớp nhà máy trông gần như giống hệt nhau về mặt bao gồm và phụ thuộc.

Vì vậy, điều này khiến tôi nghĩ rằng mình chắc chắn đã làm điều gì đó ngu ngốc khiến tệp HTMLBuilder.php không được đưa vào chính xác hoặc được giải thích không chính xác hoặc điều gì đó.

Đây là dấu vết ngăn xếp đầy đủ (đường dẫn có thay đổi một chút):

# Chức năng bộ nhớ thời gian Vị trí
1 0,0001 53904 {chính}( ) ../index.php:0
2 0,0002 67600 require_once( 'View/Page.php' ) ../index.php:3
3 0,0003 75444 require_once( 'View/Sections/SectionFactory.php' ) ../Page.php:4
4 0,0003 81152 require_once( 'Xem/Phần/HTML/HTMLSectionFactory.php' ) ../SectionFactory.php:3
5 0,0004 92108 require_once( 'Xem/Phần/HTML/HTMLTitlebarSection.php' ) ../HTMLSectionFactory.php:5
6 0,0005 99716 require_once( 'Xem/Đánh dấu/HTML/HTMLBuilder.php' ) ../HTMLTitlebarSection.php:3
7 0,0005 103580 require_once( 'Xem/Markup/MarkupBuilder.php' ) ../HTMLBuilder.php:3
8 0,0006 124120 require_once( 'Xem/Đánh dấu/HTML/HTML4.01/HTML4_01Builder.php' ) ../MarkupBuilder.php:3

Đây là mã được đề cập:

Lớp cha (Xem/Đánh dấu/HTML/HTMLBuilder.php):


require_once('View/Markup/MarkupBuilder.php');

lớp trừu tượng HTMLBuilder mở rộng MarkupBuilder {

hàm trừu tượng công khai getLink($text, $href);

hàm trừu tượng công khai getImage($src, $alt);

hàm trừu tượng công khai getDivision($id, mảng $classes=NULL, mảng $children=NULL);

hàm trừu tượng công khai getParagraph($text, array $classes=NULL, $id=NULL);

}

?>

Lớp con, (Xem/Đánh dấu/HTML/HTML4.01/HTML4_01Builder.php):


require_once('HTML4_01Factory.php');
require_once('Xem/Đánh dấu/HTML/HTMLBuilder.php');


lớp HTML4_01Builder mở rộng HTMLBuilder {
nhà máy $ tư nhân;

chức năng công cộng __construct() {
$this->factory = new HTML4_01Factory();
}

hàm công khai getLink($href, $text) {
$link = $this->factory->getA();
$link->addAttribution('href', $href);
$link->addChild($this->factory->getText($text));
trả lại liên kết $;
}

hàm công khai getImage($src, $alt) {
$image = $this->factory->getImg();
$image->addAttribution('src', $src);
$image->addAttribution('alt', $alt);
trả lại hình ảnh $;
}

hàm công khai getDivision($id, mảng $classes=NULL, mảng $children=NULL) {
$div = $this->factory->getDiv();
$div->setID($id);
if(!empty($classes)) {
$div->addClasses($classes);
}
if(!empty($children)) {
$div->addChildren($children);
}
trả về $div;
}

hàm công khai getParagraph($text, array $classes=NULL, $id=NULL) {
$p = $this->factory->getP();
$p->addChild($this->factory->getText($text));
if(!empty($classes)) {
$p->addClasses($classes);
}
if(!empty($id)) {
$p->setID($id);
}
trả về $p;
}

}


?>

câu trả lời hay nhất

Lưu ý rằng trong dấu vết, HTMLBuilder.php yêu cầu MarkupBuilder.php và HTML4_01Builder.php là bắt buộc. Bạn có một chu kỳ ngăn chặn. khi Trình tạo HTML4_01 Khi được xác định, PHP chưa xử lý xong HTMLBuilder.php. Đặc biệt, nó vẫn chưa đến lớp trừu tượng HTMLBuilder Bắt đầu định nghĩa.

Không cần thiết phải bao gồm các lớp con khi định nghĩa tổ tiên. PHP sử dụng liên kết muộn của tên lớp, do đó lớp con chỉ cần tồn tại khi phương thức được gọi.

MarkupBuilder.php:

// không cần thiết: 
//require_once('Xem/Đánh dấu/HTML/HTML4.01/HTML4_01Builder.php');

lớp MarkupBuilder {
hàm công khai tĩnh getInstance(...) {
...
trả về HTML4_01Builder mới (...);

Về việc Lớp PHP tìm thấy tệp Lớp nhưng không tìm thấy Lớp trong tệp, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/2706412/

33 4 0
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