--- A.php ----
require_once 'B.php';
class A
{
public function __constructor($x){...}
public function foo()
{
$b = B::getInstance();
...
}
}
--- B.php ----
require_once 'A.php';
class B extends A
{
protected static $_instance = null;
protected function __construct(){}
public static function getInstance()
{....}
}
PHP chỉ dừng lại giải thích đoạn code ngay khi nó đạt đến dòngkhông thể xác định hàm tạo như được bảo vệ hoặc riêng tư! tại sao?
protected function __construct(){}
và kết quả đầu ra tất cả mọi thứ trước và không có gì mà có thể đã được gửi đến trình duyệt sau đó.
Và ngay sau khi tôi chỉ mất dòng đó ra, bằng cách thay đổi nó để
// protected function __construct(){}
tất cả mọi thứ hoạt động tốt !?
Tôi không hiểu.
Bất kỳ ý tưởng nào?
bạn có thẻ mở php trong các tập tin, ví dụ như chúng bắt đầu bằng ' php'. Bạn có thể chạy 'php -l A.php' và' php -l B.php' từ CLI để xem nó có đưa ra bất kỳ lỗi phân tích cú pháp nào không? – Gordon
Phương thức __construct() sẽ cần phải được công khai vì nó được truy cập (publically) khi một cá thể của lớp được tạo ra. –
Mã giả của bạn không có bất kỳ vấn đề rõ ràng nào do đó các sự cố có nhiều khả năng nhất trong mã thực của bạn. Nếu PHP ngừng chạy và không hiển thị bất kỳ thông báo lỗi nào, bạn có thể cần phải bật báo cáo lỗi đầy đủ. Vui lòng hỏi chi tiết nếu bạn không biết làm thế nào. –