我有一个文件SQL_config.php:
namespace database;
class SQL_config
{
private $_server="localhost";
private $_user="root";
private $_password="";
private static $_singleton;
private $_connection;
protected function __construct()
{
$this->_connection=mysql_connect($this->_server,$this->_user,$this->_password);
}
public static function getInstance()
{
if(is_null(self::$_singleton))
{
self::$_singleton=new SQL_config();
}
return self::$_singleton;
}
}
和index.php:
//namespace database;
//require_once'SQL_config.php';
function __autoload($class)
{
// convert namespace to full file path
//$class = 'database/' . str_replace('\\', '/', $class) . '.php';
//require_once($class);
require_once $class . '.php';
}
$connection=database\SQL_config::getInstance();
并不起作用。警告:require_once(database \ SQL_config.php)[function.require-once]:无法打开流:第11行的C:\ wamp \ www \ Formular_contact \ index.php中没有这样的文件或目录。对于我使用的所有版本它给我错误 不能有人帮助我吗?
答案 0 :(得分:0)
define(CLASS_DIR, "/path_to_your_classes_to_load/");
require_once CLASS_DIR . str_replace('\\', '/', ltrim($className, '\\')) . '.php';
答案 1 :(得分:0)
您需要将“\”替换为“/”并在新类名的末尾添加“.php”,因为它只会获得没有昏迷和扩展名的名称。并将该类放在正确的文件夹中,如路径中所示。
function __autoload($className){
$newClassName= str_replace("\\", "/", $className) .".php";
require_once($newClassName);
}
确保将类文件放在正确的文件夹中,例如
./数据库/ SQL_config.php
如果您的班级位于“课程”文件夹中,请尝试此操作。
function __autoload($className){
$newClassName = "classes/";
$newClassName .= str_replace("\\", "/", $className) .".php";
require_once($newClassName);
}
确保将类文件放在正确的文件夹中,例如
./类/数据库/ SQL_config.php
在您提供的代码中 - 类文件在文件结构中的位置也很重要。