抽象类不可实例化!
PHP是动态语言,不像JAVA声明对象之前要说明对象的类型,PHP里面抽象类的接口容器的功能作用不大。直接声明各种数据库的操作类,继承效率还差。config.php:
<?php
..
$DBType='Mysql';
...
?>
<?php
..
include $DBType'.php';
$DbCon=new $DBType;
....
?>以上,各个数据库操作类案规则写就行。

解决方案 »

  1.   

    两行代码,写错两处,丢人了...
    <?php
    ..
    include $DBType.'.php';
    $DbCon=new $DBType();
    ....
    ?> 
      

  2.   

    但是如果,我不想改变代码,例如:我现在是你这样写
    config.php: 
    <?php 
    .. 
    $DBType='Mysql'; 
    ... 
    ?> 
    <?php 
    .. 
    clude $DBType.'.php'; 
    $DbCon=new $DBType();
    .... 
    ?> 但是如果,我的拿到另外一个项目中,使用的是MsSql呢,我是不是需要改成$DBType='MsSql'这样呢,我是想通过配置文件0是MySql数据库,1是MsSql数据库,我只需要改变配置文件就行了,这样,我可以专门做配置页面来设置了。
      

  3.   

    抽象类不允许实例化,你需要再写一个类来继承抽象类,
    给你建议就是你再写一个类来继承抽象类公共的方法入bb,然后让你的那两个类来继承该类,
    最后实例化的时候实例化new bb();
      

  4.   

    写出来了,谢谢大家的回复哈
    DbCon.php 
    <?php
    require("Config.php");
    abstract class DbCon
    {
      abstract function ExecuteQuery($sql);
      abstract protected function Con(); 
      public function DbConInit()
      {  
      if($MySqlType!=true)
      {  
      return new MySqlCls();    
      }
      }
    }
    ?>Main.php
    <?php
       $Cmd=DbCon::DbConInit();
       $Cmd->ExecuteQuery("");
    ?>
      

  5.   

    外资软件公司高薪诚聘天津,北京,杭州 BI及Siebel,PHP 人才!BI工程师:
    一 有 Informatica经验
    二 2年以上相关经验
    三 英文良好 至少能英文面试
    四 做GE 的项目,要求熟悉informatic,数据仓库存储,数据转换,懂oracle pl/sql,,英文可以工作交流 Siebel工程师:
    Siebel technical areas (Configuration/scripting/workflows). We would like to deploy 1/2 sr associate to start with and then gradually train 1-2 exp. Java/PLSQL associate to further build the team.有意者请发中英文简历至[email protected].谢谢!