Dưới đây là đoạn code tôi đã gặp khó khăn trong vài giờ:PHP yêu cầu không thành công với không có lỗi
if ((require $_SESSION['ROOT_PATH'] . '/templates/core/menu_js.php') == 'OK') {
echo 'OK';
} else {
echo 'KO';
}
Nếu tôi hiểu được tài liệu PHP trên "yêu cầu" chỉ thị chính xác, "KO" nên không bao giờ được viết bởi vì, nếu yêu cầu không hoạt động, một lỗi được nâng lên.
Trong trường hợp của tôi, "KO" luôn được hiển thị ngay cả với tunning lỗi:
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_COMPILE_ERROR);
Lưu ý rằng với cùng yêu cầu (hoặc bao gồm) hoạt động hoàn hảo trong các trang khác của trang web.
EDIT
Các nếu cấu trúc đã được thêm vào sau khi xem tài liệu. Lúc đầu, tôi đã có một dòng duy nhất:
require $_SESSION['ROOT_PATH'] . '/templates/core/menu_js.php';
Như tôi đã kiểm tra rằng dòng này đã không làm việc, tôi đã thêm các if
.
Nhân tiện. Trang bắt buộc (khi nó hoạt động) thêm một thẻ script
vào trang gọi mà tôi không bao giờ thấy trên trang duy nhất này. Trên bất kỳ trang nào khác mà yêu cầu này được sử dụng, tập lệnh xuất hiện trên đầu ra.
Vì vậy, câu hỏi của tôi phải là "nếu đầu ra của tệp php được yêu cầu không được hiển thị, tại sao không có lỗi được nêu lên?"
Menu_js.php có thực sự có tuyên bố cho biết: trả về 'OK' không? Nếu không, nó sẽ luôn luôn nói 'KO'. Xem thêm: http://nl1.php.net/manual/en/function.include.php – Friek