Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 实现接口和自动加载类_Php_Mysql_Interface_Pdo_Autoload - Fatal编程技术网

Php 实现接口和自动加载类

Php 实现接口和自动加载类,php,mysql,interface,pdo,autoload,Php,Mysql,Interface,Pdo,Autoload,我有一个问题,我有以下接口() 下面的类实现了上面的接口() 我使用以下自动加载功能动态加载类: function autoloadClass($className) { $classParts = explode("\\", $className); $fileName = SYSTEM_CORE_PATH . DIRECTORY_SEPARATOR . "classes" . DIRECTORY_SEPARATOR . strtolower(str_replace('

我有一个问题,我有以下接口() 下面的类实现了上面的接口()

我使用以下自动加载功能动态加载类:

function autoloadClass($className)
{
      $classParts = explode("\\", $className);
      $fileName = SYSTEM_CORE_PATH . DIRECTORY_SEPARATOR . "classes" . DIRECTORY_SEPARATOR . strtolower(str_replace('_', DIRECTORY_SEPARATOR, end($classParts)) . '.class.php');

      if (is_readable($fileName)) {
          if (SYSTEM_DEBUG) {
               include_once($fileName);
          } else {
               @include_once($fileName);
          }
      }
 }
spl_autoload_register("autoloadClass");
当我创建一个新的对象类(在自动加载代码下)时,我没有得到任何错误,也没有任何输出

try {
$db = new Core\Infrastructure\MySQL(array('user' => DB_USER, 'pass' => DB_PASS, 'host' => DB_HOST, 'name' => DB_NAME));
} catch (PDOException $pdoE) {
    echo $pdoE->getMessage();
} catch (Exception $e) {
    echo $e->getMessage();
}

echo "<pre>ddd";
$db->runQuery("SELECT * FROM `users`;");
print_r( $db->fetchData());
试试看{
$db=new Core\Infrastructure\MySQL(数组('user'=>db\u user,'pass'=>db\u pass,'host'=>db\u host,'name'=>db\u name));
}捕获(PDO异常$pdoE){
echo$pdoE->getMessage();
}捕获(例外$e){
echo$e->getMessage();
}
回声“ddd”;
$db->runQuery(“从`users`;中选择*”;
打印($db->fetchData());
感谢您的帮助:)

“不获取任何错误,也不获取任何输出”通常意味着错误报告设置会导致致命错误或解析错误。检查日志。确保设置了
error\u reporting(E\u ALL)
,最好是在ini文件中


$fileName
不可读时添加调试输出。这可能会提供一个洞察。

好的,我已经修复了它,自动加载只从文件加载类,而不加载接口

我只是在我编写的自动加载函数中添加了一个基于
class\u implements
函数的简短代码


感谢您的帮助:D

您正在尝试将常量计算为true,它可能被设置为任何其他值,也许defined()是更好的方法,因为现在,您很可能进入了第二种情况,并且出现了支持错误。我使用了一个回退代码,如果之前没有定义,它将定义为false。我已经启用了错误报告,但仍然没有收到任何错误。当我添加一个接口时,问题就开始了。。。