在OOP中返回查询值

时间:2016-06-16 21:10:33

标签: php mysql oop

我正在学习OOP。我的问题基于以下代码。每次使用$query_value->GetName()$query_value->GetId()

在index.php中返回值

由于$query_value

,每次都在运行MySQL查询吗?

在Class.php中

  <?php
class OOP{
    public $name,$id,$password

    public function query(){
        /* Query Performed
           rowCount() = 1 */
           $this->name = returned row  value;
           $this->id =  returned row  value;
           $this->password= returned row  value;
           return $this; // [NOTE THIS ($this)]

    }
    public function GetName(){
        return $this->name;
    }
    public function GetId(){
        return $this->id;
    }
}

在index.php中

 <?php
 $test=  new OOP();
 $query_value = $test->query();
 // now returning values
 echo $query_value->GetName();
 /// Some Html
 echo $query_value->GetId();
 ?>

3 个答案:

答案 0 :(得分:1)

  

每次都运行mysql查询吗?(因为$ query_value)

不,它每次都没有运行查询。使用此语句$query_value = $test->query();,您执行了一次查询,并使用$this->name$this->id$this->password设置了实例属性。

在这些声明$query_value->GetName();$query_value->GetId();中,您只需访问OOP类的getter方法即可获取名称和< em> id 值,就是它。

答案 1 :(得分:1)

不,每次都没有查询,因为在实例化$ query_value变量时已经调用了初始query()函数。事实上你有一个obejct作为$ test你不应该需要一个额外的变量来回显这个值

$test = new OOP();
$test->query();

// echo out the values

echo $test->GetName();
echo $test->GetId();

然后你不需要在query()函数中返回$ this,因为$ test是对象变量并且已经设置了这些值。

答案 2 :(得分:1)

不,因为您只调用该功能一次。 GetName和GetId是该类的单独方法。

但我要做的是调用这样的getter方法:

echo $test->GetName();
echo $test->GetId();

理解起来要容易一些。并且您的query()方法会记录这些值。你所做的只是将你的班级分配给另一个变量。