Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 - Fatal编程技术网

php类内部变量在类内

php类内部变量在类内,php,Php,我不是一个有经验的程序员,我试图理解我创建的类的一个问题 我在类a中有一个私有变量,这个私有变量将查询结果存储到mysql数据库,我通过类a中的一个公共函数访问这个变量 我的目标是通过公共函数呼应私有变量的值。我的问题是,当这个私有变量存储查询结果时,它在类中被转换 这里是私有变量的var_转储 object(stdClass)#4 (1) { ["count(*)"]=> string(1) "8" } 我真搞不懂如何呼应数字“8” 我正在尝试: echo $this-&

我不是一个有经验的程序员,我试图理解我创建的类的一个问题

我在类a中有一个私有变量,这个私有变量将查询结果存储到mysql数据库,我通过类a中的一个公共函数访问这个变量

我的目标是通过公共函数呼应私有变量的值。我的问题是,当这个私有变量存储查询结果时,它在类中被转换

这里是私有变量的var_转储

object(stdClass)#4 (1) { 
    ["count(*)"]=> string(1) "8" 
} 
我真搞不懂如何呼应数字“8”

我正在尝试:

echo $this->private
但正如预期的那样,php不能像那样工作,它告诉我:

"Object of class stdClass could not be converted to string"
谁能给我指出正确的方向吗

代码如下:

class Quiz {

    private $db;
    private $query;
    private $questions;
    private $answers;
    private $total;

    public function __construct(){
        $this->db = new connection();
        $this->db = $this->db->dbConnection();      
    }

    public function NumRows ($quiz) {
        $this->query = $this->db->prepare("Select count(*) FROM ".$quiz."");
        $this->query->execute();
        $this->total = $this->query->fetchObject();
        var_dump($this->total);
        echo $this->total;
    }


}


$quiz = new Quiz();
$quiz->NumRows("01_ospf");

$this->private
是一个对象,因此您需要访问该属性。属性名为
count(*)
。所以用这个:

echo $this->private->{"count(*)"};
您应该为列指定一个别名,这样就不必使用这种复杂的语法。例如,如果您这样做:

SELECT COUNT(*) AS count ...
然后你可以写:

echo $this->private->count;

使用一段代码会很有帮助。
选择COUNT(*)作为COUNT
。然后:
echo$quick->getPrivate()->countecho
:一个类似于
render($template,array$data)
的函数,它调用
extract()
,然后
包含$template。在其他地方,请正确使用返回值。永远不要在构造函数中初始化像db连接这样的繁重资源。这使得测试(模拟)变得不可能。谢谢你的回复Flavius,你知道我在哪里可以得到一个没有回声的函数回声的例子。。。因为我需要打印一些html。