5
ở đây để hỏi có bất kỳ lỗi nào cho lớp/chức năng tự động tải của tôi với spl_autoload_register không?Lỗi ngoại lệ logic: Mảng được truyền không chỉ định phương thức tĩnh hiện có
đánh giá cao sự trợ giúp.
đây là mã của tôi
<?php
namespace system\core;
// if(!defined('IN_APP')){
// exit('Access Denied');
// }
define('ROOT', $_SERVER['DOCUMENT_ROOT']);
define('DS', DIRECTORY_SEPARATOR);
if(function_exists('spl_autoload_register')){
spl_autoload_register(array('core', 'autoload'));
}else{
function __autoload($class){
return core::autoload($class);
}
}
A:createapp();
class core
{
private static $_app;
public static function createapp(){
if(!is_object(self::$_app)){
self::$_app = 'something';
}
return self::$_app;
}
public static function autoload($class){
$class = trim(strtolower($class));
if(strpos($class, '\\') !== false){
$path = ROOT;
$path .= DS . $class . '.php';
$path = preg_replace('/[\\|\/]/i', DS, $path);
require_once($path);
}
}
}
class A extends core {}
và tôi đã nhận lỗi này
Fatal error: Uncaught exception 'LogicException' with message 'Passed array does not specify an existing static method (class 'core' not found)' in C:\xampp\htdocs\test\system\core.php:14 Stack trace: #0 C:\xampp\htdocs\test\system\core.php(14): spl_autoload_register(Array) #1 {main} thrown in C:\xampp\htdocs\test\system\core.php on line 14
sau khi tôi đọc msg lỗi, nó có nghĩa là không tìm thấy lõi lớp học? nhưng lớp được viết trong cùng một tệp ???
Cảm ơn, nó làm việc, quên tôi đang sử dụng không gian tên, sẽ thiết lập nó như là câu trả lời sau 2 phút – geass
Tôi đang gặp vấn đề tương tự. Trong trường hợp của tôi, lớp chứa hàm tự động nạp nằm trong một tệp khác từ lệnh gọi 'spl_autoload_register'. Nó hoạt động khi tôi sao chép lớp vào cùng một tệp với lệnh gọi 'spl_autoload_register'. –