使用后期静态绑定变量与另一个类

时间:2015-02-19 19:05:15

标签: late-static-binding

我已经创建了一个用于编写sql查询的类,其中我使用了后期静态绑定概念,我试图在不同的类中调用其insert方法来插入值  这是sqlQuery类

  class sqlQuery
{
    public static $table=" table 1 ";
    public static $colum1="  colum1  ";
    public static $colum2=" colum2  ";
    public static $colum3=" colum3  ";
    public static $colum4=" colum4  ";
    public $value1=" value1 ";
    public $value2="  value2   ";



   public function insert( $value1,$value2)
    {
    echo "INSERT INTO" .static::$table ."(" . static::$colum1 .' , ' .static ::$colum2. ")  VALUES('$value1' , '$value2')" ;        
    }

}

这是我的第二个类文件,我在第一类使用insert方法,我正在尝试做什么,使用后期静态绑定从这个类中获取表名和列....请帮助我怎么做到这一点......这是我的第二类文件

  class gallery extends logo 
{
    public $object;

    public static $colum1=" status ";
    public static $colum2=" order ";
    public static $colum3=" colum3  ";
    public static $colum4=" colum4  ";

   function __construct()
     {
        parent::__construct();
        //$this->object=new sqlQuery();


    }

    function insert()
     {
        $query=new sqlQuery();

        $query1=new sqlQuery();
        $call=$query1->insert('active','10'); 


     }

  }

 Help me thanks in advance.....

1 个答案:

答案 0 :(得分:1)

后期静态绑定是关于父子关系的。目前还不清楚你想要得到什么。你应该有一些sqlQuery的子类来使用后期静态绑定。像

这样的东西
class gallerySqlQuery extends sqlQuery
{
    protected static $colum1=" status "; // better private or protected
    protected static $colum2=" order "; // you don't need it to be public
    protected static $colum3=" colum3  ";
    protected static $colum4=" colum4  ";
}
在库类中

,你应该调用这个类的方法

$query1=new gallerySqlQuery();
$call=$query1->insert('active','10'); 

然后,您不需要在sqlQuery类中声明所有这些公共静态$ colum1等。